Bitbucket は Git のリポジトリをホストしてくれるサービスだが、プライベート(非公開)のリポジトリも無料で使える。GitHub の場合、プライベートリポジトリは有料。Bitbucket はアクセスする人数が(5人だったかに)増えたら有料だった気がする。なので、個人で密かに開発をしたい時は Bitbucket がお勧め。
作り方と流れ
作り方は極めて簡単。ログインしてメニューから名称などを入力して作成ボタンを押すだけ。流れだけ簡単に確認しておこう。
Bitbucket のログイン画面で、画面左の + のアイコン -> Repository (もしくは Repositories -> Create repository)。
すると、次のようなスクリーンが出るので、名称を適当なものにして、プライベートにしたい場合は、 This is a private repository にチェックをいれる。Version control は Git。ここでは “test” という名称にした。そして Create repository。
上手くいくと次のようにリポジトリ一覧に表示される。プライベートなので鍵のマークが付いている。
作成された test リポジトリをクリックすると次のような画面になる。
これでリポジトリは作成できた。次にきちんとローカルマシンにクローンできるか確認しておこう。
git clone git@bitbucket.org...
で始まる文字列をクリップボードにコピーしておく。
ローカルマシンに作成した Git リポジトリをクローンする
手元のマシンに Git が入っている場合、コンソールアプリケーションで、任意のディレクトリから、コピーしたコマンドを貼り付けて打ってみると、リポジトリファイルががローカルにクローンされる。
1 |
$ git clone git@bitbucket.org:{アカウント名}/test.git |
Permission denied (publickey) の場合
しかし、プライベートのリポジトリなので SSH の鍵がきちんと設定されている必要がある。でないと次のようなメッセージでアクセスを拒否される。
1 2 3 4 5 6 7 8 9 10 11 |
$ git clone git@bitbucket.org:{アカウント名}/test.git Cloning into 'test'... The authenticity of host 'bitbucket.org (18.205.93.0)' can't be established. RSA key fingerprint is SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'bitbucket.org,18.205.93.0' (RSA) to the list of known hosts. git@bitbucket.org: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. |
SSH 鍵の設定
これは鍵がきちんと設定できていない。なので、鍵の作成をする。SSH は他サーバーとコミュニケーションをする時に、~/.ssh 内にある認証情報を確認する。そこに鍵が入っている必要がある。
ユーザーのホームディレクトリに .ssh ディレクトリを作成し、鍵を作成する。
1 |
$ cd ~ |
でホームディレクトリへ移動し、
1 |
$ ssh-keygen |
と打つ。Enter file in which to save the key でファイル名を聞かれるのでそのままエンターを押すとデフォルトで id_rsa
というファイルにしてくれる。ここではそれに従っている。次にパスワードを聞かれるが、これは入力せずエンターを押すと省略できる。
すると、次のようなメッセージが出て、.ssh ディレクトリ下に id_rsa
と id_rsa.pub
という2つのファイルが生成される。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/***/.ssh/id_rsa): /***/.ssh/id_rsa already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /***/.ssh/id_rsa. Your public key has been saved in /***/.ssh/id_rsa.pub. The key fingerprint is: SHA256:9d7FLOg6GRT06EesmXk7ylQ1SThJtoLfa6tueT9KAzE {user name}@{machine name} The key's randomart image is: +---[RSA 2048]----+ | ...oo. | | ..=+o . | | . E.=.+ | | +.% o + | | S.O B . +| | .B + o | | .+X . | | o==.+. | | o*+oo.. | +----[SHA256]-----+ |
生成された公開鍵をクリップボードにコピー
で、公開鍵を Bitbucket 側に登録するために、その文字列をコピーしておく。
Windows の場合
1 2 |
cd %userprofile%/.ssh clip < id_rsa.pub |
Mac の場合
1 |
pbcopy < ~/.ssh/id_rsa.pub |
Linux の場合
1 2 |
sudo apt-get install xclip xclip -sel clip < ~/.ssh/id_rsa.pub |
参考: https://confluence.atlassian.com/bitbucketserver/ssh-user-keys-for-personal-use-776639793.html
SSH 公開鍵の登録
SSH の鍵認証は公開鍵と秘密鍵の2つの鍵のペアを使って行う。この公開鍵を Bitbucket 側で登録しておく必要がある。Bitbucket にログインして、左下のアカウントアイコン -> View profile -> Settings -> SSH -> Add key へ移動。
次の Add SSH key のスクリーンで、Label に適当な名称を入れ、先程コピーした公開鍵の文字列を貼り付け、Add key で鍵を追加する。
追加した公開鍵が登録されているか、確認しておく。
鍵が登録できたらもう一度 clone
コマンドを試してみよう。
結果
1 2 3 4 5 |
$ git clone git@bitbucket.org:{アカウント名}/test.git Cloning into 'test'... warning: You appear to have cloned an empty repository. $ ls test/ |
上手くいくと、コマンドを実行したディレクトリにリポジトリのディレクトリ名でクローンされることが分かる。作ったばかりだと、warning: You appear to have cloned an empty repository. というようなメッセージがでるかもしれないが、ファイルを追加してコミットすれば消えるので問題ない。