Bitbucket でプライベートリポジトリの作成からクローンまでの流れ

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 が入っている場合、コンソールアプリケーションで、任意のディレクトリから、コピーしたコマンドを貼り付けて打ってみると、リポジトリファイルががローカルにクローンされる。

Permission denied (publickey) の場合

しかし、プライベートのリポジトリなので SSH の鍵がきちんと設定されている必要がある。でないと次のようなメッセージでアクセスを拒否される。

SSH 鍵の設定

これは鍵がきちんと設定できていない。なので、鍵の作成をする。SSH は他サーバーとコミュニケーションをする時に、~/.ssh 内にある認証情報を確認する。そこに鍵が入っている必要がある。

ユーザーのホームディレクトリに .ssh ディレクトリを作成し、鍵を作成する。

でホームディレクトリへ移動し、

と打つ。Enter file in which to save the key でファイル名を聞かれるのでそのままエンターを押すとデフォルトで id_rsa というファイルにしてくれる。ここではそれに従っている。次にパスワードを聞かれるが、これは入力せずエンターを押すと省略できる。

すると、次のようなメッセージが出て、.ssh ディレクトリ下に id_rsaid_rsa.pub という2つのファイルが生成される。

生成された公開鍵をクリップボードにコピー

で、公開鍵を Bitbucket 側に登録するために、その文字列をコピーしておく。

Windows の場合

Mac の場合

Linux の場合

参考: 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 コマンドを試してみよう。

結果

上手くいくと、コマンドを実行したディレクトリにリポジトリのディレクトリ名でクローンされることが分かる。作ったばかりだと、warning: You appear to have cloned an empty repository. というようなメッセージがでるかもしれないが、ファイルを追加してコミットすれば消えるので問題ない。

Leave a Reply

Your email address will not be published. Required fields are marked *