お前らのSSH Keysの作り方は間違っている

  • 656
    いいね
  • 8
    コメント
  • GitHubのHelpに記述されているSSH Keysの作成方法が僕の知っている作成方法と 微妙に異なっていたので、書いてみました。

以下の参考にしています。
Generating SSH keys - User Documentation

SSH Keysの確認

  • 既存のSSH Keysの確認をする必要があるので、以下を実行
ls -al ~/.ssh

デフォルトでのSSH Keysの名前は以下のうちのどれか

  • id_dsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub
  • id_rsa.pub

現在使用している鍵の暗号強度の確認

  • 以下のコマンドにて鍵長が2048以上かつ暗号化方式がRSA、或いはECDSAやEd25519であればOK
$ ssh-keygen -l -f ~/.ssh/id_rsa.pub
4096 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_email@example.com (RSA)

新しいSSH Keyの作成

  1. -Cのコメント部分を入れ替えて、以下のコマンドを実行

※GitHubに登録しているEmailアドレスを使うのが一般的のようです。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  1. SSH Keysの保存先を聞かれているので、特に気にしなければそのままEnterを入力
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
  1. パスフレーズの入力を求められるので、入力
Enter passphrase (empty for no passphrase): [Type a passphrase]
# Enter same passphrase again: [Type passphrase again]

※ GitHubは安全なパスフレーズを入力しろって言ってる。
Working with SSH key passphrases - User Documentation

SSH Keysの作成完了

GitHubアカウントにSSH Keyの登録

  • ~/.ssh/id_rsa.pubの内容をクリップボードにコピー
pbcopy < ~/.ssh/id_rsa.pub
  • SSH Keyの登録
  1. GitHubにログインし、右上のプロフィールをクリック -> Settingsにて設定画面に遷移
  2. 左のメニューからSSH keysをクリック
  3. Add SSH Keyをクリック
  4. Titleに識別できる文字列を入力
  5. Bodyに先ほどクリップボードに入れた値をペースト
  6. Add Keyをクリック

確認

  • ターミナル上で以下を入力
ssh -T git@github.com
  • こんな感じで聞かれるので、GitHub's SSH key fingerprints に記述されているfingerprintsと一致するのを確認してからyesを入力
The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?

下記のような文字列が出力されれば確認OK

Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.

お疲れ様でした。
これでGitHubにgit@でアクセスできるようになります。

※ 尚、リポジトリで使用する場合、Gitのリモートリポジトリをhttpsに切り替えている場合はリモートリポジトリの
URLを切り替える必要があるので注意

最後に

  • 使っていない認証鍵は削除するとかRSAの1024bitsの鍵を使っている人とか居るみたいなので、 そういった方、わからない方はこの機会に作り直しましょう。
  • 鍵の削除を行う際には公開鍵、秘密鍵の両方削除を行いましょう。また、GitHubに登録している公開鍵なども削除を行いましょう。

なぜ危険なのか参考URLは以下にのせておきます。

GitHubユーザーのSSH鍵6万個を調べてみた - hnwの日記