LoginSignup
10
8

More than 3 years have passed since last update.

GitHubで作ったリポジトリをSourceTreeでクローンできないとき【Ver. 2.5.5】

Last updated at Posted at 2019-07-24

※この記事は https://kunosu.qrunch.io/entries/jCmqzabfzy0A0nmm に移動しました。


「GitHubにリポジトリを作ったぞ~さっそくSourceTreeでクローンするぞ!」と意気込むが、

0_Error.png

「なにこれ……」となり解決するのにだいぶ時間がかかったので解決方法を記録。

※Windows版 SourceTree のバージョンが2.5.5のときの情報です。

エラーの原因

GitHub と SourceTree の間で通信する際、「SSHキー」という鍵でファイルを暗号化する必要があります。
SourceTree をインストールしたばかりのときはその鍵がないので通信ができず、エラーになっていました。

というわけで、SSHキーを作り、GitHub と SourceTreeに「この鍵で暗号化してね!」と教えることでクローンができるようになります。

手順

SourceTreeでSSHキーを生成

  1. SourceTreeを起動します。
  2. メニューの「ツール」→「SSHキーの作成/インポート」をクリックして「PuTTY Key Generator」ウィンドウを出します。
    SourceTreeの「PuTTY Key Generator」ウィンドウ
  3. 一番下の「Parameters」を次のように変更します(上記画像と同じならそのままでOK)。
    • Type of key to generate: RSA
    • Number of bits in a generated key: 2048
  4. 「Actions」の「Generate」をクリック
  5. 緑のバーが出るので、ウィンドウの中でマウスを適当に動かします。
    緑のバーがいっぱいになるまでマウスをぐるぐる
    • バーの上にある "Please genarate some randomnss by mobing the mouse over the blank area." に書いてあるように、マウスの座標を乱数として鍵を生成しています。
    • 英語を読もうとせず「生成に時間がかかるんだろうな~」と1時間放置したのは私ですorz
  6. 緑のバーがいっぱいになると鍵の生成が完了します。
    SSHキーの生成完了画面
    • 一番上の黒塗りの部分に公開鍵が表示されます。
    • 「Key Comment」はそのまま鍵の名前みたいなものです。
      • 分かりやすいのにしてもいいですし、デフォルトのままでもいいです。
    • 「Key passphrase」と「Confirm passphrase」はパスフレーズです。入力するとプッシュやフェッチの度にパスフレーズを入力することになり、面倒になるため空欄のままでいいです。
  7. 公開鍵をGitHubに登録するため、メモ帳などにコピペしておきます。
  8. 「Save private key」をクリックし、任意の場所に保存します。
    • 拡張子:*.ppk

GitHubに公開鍵を登録

  1. GitHubの設定画面にアクセスします。
  2. 右上の緑のボタン「New SSH Key」をクリック。
  3. 入力画面に移るので、下記を入力します。
    • 「Title」: 分かりやすい名前をつけます(ここでは「Key Comment」と同じにしました)
    • 「Key」: SourceTreeで生成した公開鍵をコピペします。
  4. 「Add SSH Key」をクリック。

SourceTreeに秘密鍵を登録

  1. SourceTreeの「ツール」→「SSHエージェントを起動...」をクリック
    • 一見何も起こりませんが大丈夫です。
  2. タスクバーに「帽子を被ったパソコンのようなアイコン」が出ているので、タブルクリック
    帽子を被ったパソコンのようなアイコン
  3. 「Pageant Key List」ウィンドウが出るので「Add Key」をクリック
  4. 先程保存した秘密鍵(*.ppk)を選択します。
  5. 「開く」をクリック

これでクローンの準備ができました。

GitHubからリポジトリのアドレス取得

  1. クローンしたいリポジトリのwebページを開きます。
    • https://github.com/ユーザー名/リポジトリ名」の形式になっているURLです。
  2. 右の緑のボタン「Clone or download」をクリック
  3. 「Clone with SSH」と書かれていることを確認して「git@github.com:ユーザー名/リポジトリ名」となっている部分をコピー
    • 「Clone with HTTPS」の場合はすぐ右隣の「Use SSH」をクリックで「Clone with SSH」に変更されます。

SourceTreeでクローン

  1. SourceTreeのタブの「+」ボタンで「New tab」を開きます。
  2. 左から3つ目の「Clone」をクリック。
  3. 上から1つ目の入力欄に先程GitHubでコピーした文字列を貼り付けます。
  4. 「これはGitリポジトリです」と表示されることを確認
    • 表示されない場合、コピペし直す、SSHエージェントをもう一度起動してみるなどを試す
  5. 2つ目の入力欄にパスを指定します。
    • これがローカルリポジトリになります。
    • 基本的にはデフォルトのままで大丈夫です。
    • Dドライブだったり既にファイルが入っているフォルダだとエラーになります。
  6. 3つ目の入力欄へSourceTreeのタブに表示される名前を設定します。
  7. 「クローン」をクリック

やっておくべきSSHエージェントの設定

以上の方法でクローンはできますが、このままではプッシュ・プルをするときに毎回秘密鍵を読み込ませる必要があります。
面倒なので下記の設定を行います。

  1. SourceTree メニューの「ツール」→「オプション」で「オプション」画面を表示します。
  2. 「全般」タブの中央「SSH クライアントの設定」の各項目を次のようにします。
    • SSHキー: 秘密鍵が保存されている場所のフルパス
    • SSH クライアント: PuTTY/Plink
    • 「SourceTree起動時にSSHエージェントを起動」にチェック
  3. 「OK」をクリック

SSHエージェントは常駐させること!

上記の設定でSourceTreeを起動するとSSHエージェントが起動するようになりましたが、
間違えてSSHエージェントを終了させても再起動はしてくれません。
もう一度起動させるには「ツール」→「SSHエージェントを起動...」から行えます。

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8