LoginSignup
2193

More than 1 year has passed since last update.

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

Last updated at Posted at 2015-09-30
  • 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-rsa,非推奨のお知らせにてSHA1を用いたRSA鍵が将来的にはdeprecateとなり,デフォルトでSHA1を用いたRSA鍵を利用する機能自体が無効化されることが改めて告知されました。よって、SHA1のRSA鍵を使用している方は新しく鍵を作り直すことをオススメします。 「廃止対象となっているのは署名方式の方だけです。なのでOpenSSH 7.2以降を入れれば、鍵自体は古いOpenSSHで生成した物がそのまま使えます。」とのことですので、鍵自体を作り直す必要はないようです

新しいSSH Keyの作成

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

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

ssh-keygen -t ed25519 -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の日記

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2193