SourceTreeでSSH鍵(キー)を作成し、Bitbucketとつなぐ

こんにちは!武藤です。

前回は、Git BashでSSH鍵(キー)を作成し、Bitbucketとつなぐ方法をご紹介しました。
今回は、黒い画面は苦手な人のために、SourceTreeでSSH鍵(キー)を作成し、Bitbucketとつなぐ方法をご紹介します。

Gitのことがある程度わかってくると、SouceTreeの方が効率的に作業できることもあります。
ここではWindows7環境を例に、BitbucketにSSH鍵(キー)を登録し、実際にリモートリポジトリをローカルリポジトリに取り込むところまでご紹介します。
WindowsのSourceTreeでSSH接続の失敗を繰り返したので、解決方法も合わせてどうぞ。

手順

  1. WindowsにSourceTreeをインストールする
  2. 過去の記事「SourceTreeでSSH鍵(キー)を作成し、Backlogとつなぐ」より、 SourceTreeにSSH鍵(キー)を作成・登録まで進める
  3. 公開鍵を自分のBitbucketアカウントに登録する
  4. Bitbucketのリモートリポジトリをローカルリポジトリに取り込む
  5. SSH接続がうまくいかないときの解決方法(Windows7、Windows10で検証済み)

3.公開鍵を自分のBitbucketアカウントに登録する

ブラウザを立ち上げて、Bitbucketにログインします。

Account settingsを選択する画面

メニューバーの自分のアイコンから「アカウントの管理」を選択します。
アカウントの管理ページの左メニューのセキュリティにある「SSHキー」を選択します。

SSHキーのページが表示され、既存のキーが表示されます。
「鍵を追加」ボタンをクリックします。

鍵を追加する画面

Label名を管理しやすい名前で登録します。
鍵の作成時にテキストファイルで保存した「OpenSSH authorized_key」のテキストをコピーしてきて、keyのフォーム内にペーストします。
「鍵を追加」をクリックします。

SSH鍵を作成する画面

4.Bitbucketのリモートリポジトリをローカルリポジトリに取り込む

Bitbucketの左メニューにある「クローン」を選択し、「SourceTreeにクローン」ボタンをクリックします。

BitbucketでSourceTreeにクローンする画面

クリックすると、このようなウインドウが表示されます。
保存先のパスを編集し、「クローン」をクリックします。

SourceTreeでリポジトリをクローンする画面

これでリモートリポジトリからローカルリポジトリへのクローンが始まります!

ここで、なかなかつながらないときは「詳細な出力を表示」にチェックをいれ、詳細を確認します。
リモートリポジトリが重い場合、このようなメッセージが出ることがあります。

warning: templates not found

慌てないで、じっくり待ちましょう。
クローンが始まります。

SourceTreeでクローンが始まる画面

5. SSH接続がうまくいかないときの解決方法

実は、SSH接続に何度も失敗しました。
SSHキーを作り直し、設定し直しましたが、なかなかうまくいきませんでした。

調査をすすめるうちに、WindowsでSSH接続をすると、レジストリの書き換えがあることがわかりました。 これがうまくいっていないため、レジストリに書き込みができず、うまく接続できなかったのです。

レジストリの調べかた

Windowsの[スタート]メニューから「ファイル名を指定して実行」を選び,表示されるウィンドウに「regedit.exe」と入力して[OK]ボタンをクリックすれば,レジストリエディタが起動します。

左のエクスプローラから、以下を開きます。
HKEY_CURRENT_USERSoftWareSimonTathamPuTTYSshHostKeys
rsa2@22:bitbucket.orgがある場合が正常なので、rsa2@22:bitbucket.orgがあるかどうかを確認します。

レジストリエディタ画面

レジストリの書き込みが成功していれば、このようになっています。
もし、ない場合は、コマンドプロンプトを立ち上げ、このように実行します。

"C:Program Files (x86)AtlassianSourceTreetoolsputtyplink.exe" -ssh -C -i "privatekey.ppk" git@bitbucket.org

実行すると、以下のように表示されます。

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:XXXXXX
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)

yと入力するとこのようになります。

You can use git or hg to connect to Bitbucket. Shell access is disabled.

これで、レジストリの書き込みができ、無事SSH接続できます!
Windows7環境での例をご紹介しましたが、Windows10でも同じようにSSH接続に失敗して、この方法で解決できました!