🔑
GitHubで作ったリポジトリをSourceTreeでクローンできないとき【Ver. 2.5.5】
※この記事は、Qiitaに投稿した記事を一部変更したものです。
「GitHubにリポジトリを作ったぞ~さっそくSourceTreeでクローンしよう!」と意気込むが、
「なにこれ……」となり解決するのにだいぶ時間がかかったので解決方法を記録。
※Windows版 SourceTree のバージョンが2.5.5のときの情報です。
エラーの原因
GitHub と SourceTree の間で通信する際、「SSHキー」という鍵でファイルを暗号化する必要があります。
SourceTree をインストールしたばかりのときはその鍵がないので通信ができず、エラーになっていました。
というわけで、SSHキーを作り、GitHub と SourceTreeに「この鍵で暗号化してね!」と教えることでクローンができるようになります。
手順
1. SourceTreeでSSHキーを生成
- SourceTreeを起動します。
- メニューの「ツール」→「SSHキーの作成/インポート」をクリックして「PuTTY Key Generator」ウィンドウを出します。
- 一番下の「Parameters」を次のように変更します(上記画像と同じならそのままでOK)。
- Type of key to generate: RSA
- Number of bits in a generated key: 2048
- 「Actions」の「Generate」をクリック
- 緑のバーが出るので、ウィンドウの中でマウスを適当に動かします。
- バーの上にある "Please genarate some randomness by mobing the mouse over the blank area." に書いてあるように、マウスの座標を乱数として鍵を生成しています。
- 緑のバーがいっぱいになると鍵の生成が完了します。
- 一番上の黒塗りの部分に公開鍵が表示されます。
- 「Key Comment」はそのまま鍵の名前みたいなものです。
- 分かりやすいのにしてもいいですし、デフォルトのままでもいいです。
- 「Key pathphrase」と「Confirm pathphrase」はパスフレーズです。入力するとプッシュやフェッチの度にパスフレーズを入力することになり、面倒になるため空欄のままでいいです。
- 公開鍵をGitHubに登録するため、メモ帳などにコピペしておきます。
- 「Save private key」をクリックし、任意の場所に保存します。
- 拡張子:*.ppk
2. GitHubに公開鍵を登録
- GitHubの設定画面にアクセスします。
- GitHubの設定画面: https://github.com/settings/keys
- 右上の緑のボタン「New SSH Key」をクリック。
- 入力画面に移るので、下記を入力します。
- 「Title」: 分かりやすい名前をつけます(ここでは「Key Comment」と同じにしました)
- 「Key」: SourceTreeで生成した公開鍵をコピペします。
- 「Add SSH Key」をクリック。
3. SourceTreeに秘密鍵を登録
- SourceTreeの「ツール」→「SSHエージェントを起動...」をクリック
- 一見何も起こりませんが大丈夫です。
-
タスクバーに「帽子を被ったパソコンのようなアイコン」が出ているので、タブルクリック
- 「Pageant Key List」ウィンドウが出るので「Add Key」をクリック
- 先程保存した秘密鍵(*.ppk)を選択します。
- 「開く」をクリック
これでクローンの準備ができました。
4. GitHubからリポジトリのアドレス取得
- クローンしたいリポジトリのwebページを開きます。
- 「
https://github.com/ユーザー名/リポジトリ名
」の形式になっているURLです。
- 「
- 右の緑のボタン「Clone or download」をクリック
- 「Clone with SSH」と書かれていることを確認して「git@github.com:ユーザー名/リポジトリ名」となっている部分をコピー
- 「Clone with HTTPS」の場合はすぐ右隣の「Use SSH」をクリックで「Clone with SSH」に変更されます。
5. SourceTreeでクローン
- SourceTreeのタブの「+」ボタンで「New tab」を開きます。
- 左から3つ目の「Clone」をクリック。
- 上から1つ目の入力欄に先程GitHubでコピーした文字列を貼り付けます。
- 「これはGitリポジトリです」と表示されることを確認
- 表示されない場合、コピペし直す、SSHエージェントをもう一度起動してみるなどを試す
- 2つ目の入力欄にパスを指定します。
- これがローカルリポジトリになります。
- 基本的にはデフォルトのままで大丈夫です。
- Dドライブだったり既にファイルが入っているフォルダだとエラーになります。
- 3つ目の入力欄へSourceTreeのタブに表示される名前を設定します。
- 「クローン」をクリック
やっておくべきSSHエージェントの設定
以上の方法でクローンはできますが、このままではプッシュ・プルをするときに毎回秘密鍵を読み込ませる必要があります。
面倒なので下記の設定を行います。
- SourceTree メニューの「ツール」→「オプション」で「オプション」画面を表示します。
- 「全般」タブの中央「SSH クライアントの設定」の各項目を次のようにします。
- SSHキー: 秘密鍵が保存されている場所のフルパス
- SSH クライアント: PuTTY/Plink
- 「SourceTree起動時にSSHエージェントを起動」にチェック
- 「OK」をクリック
SSHエージェントは常駐させること!
上記の設定でSourceTreeを起動するとSSHエージェントが起動するようになりましたが、
間違えてSSHエージェントを終了させても再起動はしてくれません。
もう一度起動させるには「ツール」→「SSHエージェントを起動...」から行えます。
Discussion