😀
GitHubのSSH認証の設定方法
毎回悩む(特にconfigの書き方)のでメモ。
手順
SSH Keyの生成
SSH Keyを格納するディレクトリ( hogehoge
)を作成して移動する。
$ mkdir -p ~/.ssh/hogehoge
$ cd ~/.ssh/hogehoge
SSH Keyを生成する。
$ ssh-keygen -t rsa -b 4096 -C "user@hogehoge.com"
Keyの保存先を聞かれるので、 ./id_rsa
と入力してEnter。
Enter file in which to save the key (/Users/username/.ssh/id_rsa): ./id_rsa
任意のパスフレーズを入力してEnter(2回)。
パスフレーズが不要であれば空欄のままEnterでよい。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
ssh-keygenのオプション
- -t
- 暗号化方式をrsa, dsa, ecdsa, ed25519 から選択
- 今後はecdsaやed25519の方がよいかも
- -b
- ビット数を指定(2048以上が望ましい)
- -C
- コメントを指定
- GitHubに登録してあるメールアドレスにするのが一般的らしい
GitHubへSSH Keyを追加
SettingsのSSH KeysからAdd SSH Keyに移動し、Titleに自分で識別できる文字列、Bodyに id_rsa.pub
の中身をコピーしてAdd Keyする。
このとき、間違えて id_rsa
をコピーしないように注意すること。
コピーするときは以下のコマンドを使うと便利(macOSの場合)。
$ cat ~/.ssh/hogehoge/id_rsa.pub > pbcopy
SSHのconfigを作成
$ vim ~/.ssh/config
でファイルを開き、
Host github.com
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/hogehoge/id_rsa
と追記して保存する。
複数のGitHubアカウントを使い分ける場合は、
- Host(自分で区別できる任意の名前)
- IdentityFile(そのアカウントで使用するSSH Keyのパス)
を書き換えたものを追加すればOK。
接続確認
まず、ssh-agentに追加する。
$ eval `ssh-agent`
$ ssh-add ~/.ssh/hogehoge/id_rsa
接続確認してみる。
$ ssh -T git@github.com
接続してよいか確認された場合はyesと入力し、認証完了した旨のメッセージが出れば成功。
Discussion