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」をクリックして、ウインドウを閉じる。
以上。