😀

GitHubのSSH認証の設定方法

2021/06/15に公開

毎回悩む(特に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と入力し、認証完了した旨のメッセージが出れば成功。

参考文献

GitHubで編集を提案

Discussion

ログインするとコメントできます