Posted at

SourceTreeでGitHubにSSH接続する方法


SourceTreeでGitHubにSSH接続

GitHubの2段階認証を有効にするとHTTP接続ができなくなり、SSH接続する必要がある。

SourceTreeはクセが強く、色々とハマったところがあったので、備忘録として情報を残す。


SSH認証の公開鍵と秘密鍵を作成

SSHで接続するための公開鍵と秘密鍵を作成する。

コメントの部分は何でも良いらしいが、GitHubではメールアドレスを推奨している?

$ ssh-keygen -t rsa -C [コメント(メールアドレスとか何でも良い、空でも良い)]

鍵をどこに保存するか聞かれるので、そのままで良いならEnter。

Enter file in which to save the key (/Users/evitch/.ssh/id_rsa):

パスフレーズを2回入力する。

Enter passphrase (empty for no passphrase):

Enter same passphrase again:
Your identification has been saved in /Users/evitch/.ssh/id_rsa.

これでSSH認証の公開鍵と秘密鍵が作成される。

id_rsa: 秘密鍵

id_rsa.pub: 公開鍵

$ cd ~/.ssh

$ ls
id_rsa id_rsa.pub

秘密鍵のパーミッションを設定する。

$ chmod 600 id_rsa

(重要!)鍵にパスフレーズを設定した場合のみ、以下のコマンドを実行する。

これでssh-agentに鍵を登録しないと、SourceTreeが正常に鍵情報を読み込んでくれない模様。

$ ssh-add -K

~/.ssh/configを作成し、以下のように記述する。

Host github.com

HostName github.com
IdentityFile ~/.ssh/id_rsa
User git


GitHubへ公開鍵を登録

設定ページの「SSH and GPG keys」をクリックする。

SSH Keys の「New SSH key」ボタンをクリックする。

Title欄には任意の名前を入力し、Key欄には以下のコマンドでクリップボードにコピーしたものを貼り付ける。

$ pbcopy < ~/.ssh/id_rsa.pub

「Add SSH key」ボタンを入力して、GitHubへ公開鍵を登録する。


SourceTreeの設定

SouceTreeメニューの「環境設定...」から、アカウント画面を開く。

「追加」をクリックし、以下の画面が表示されたら、ホストを「GitHub」にし、「接続アカウント」をクリックする。

ブラウザに飛ばされるので、「SourceTreeを開く」をクリックすると、SourceTreeにGitHubのアカウントが連携される。

「保存」をクリックして、ウインドウを閉じる。

次に、SouceTree画面右上の「設定」をクリックし、リモートタブを開く。

ここにリモートリポジトリへの接続方法を入力する。

SSHで接続するため、GitHubのリポジトリページのトップからコピペする。

「OK」をクリックして、ウインドウを閉じる。

以上。