目的
macOS Sierraにアップデートしたところ、SSH通信をするたびに秘密鍵のパスフレーズを聞かれるようになり、対策を調べていたところ、せっかくなのでSSH key自体も現時点で世界最強のEd25519のものに変更しよう、という目的で書いた記事です。
前提
- macOS Sierra
- 今までのSSH keyはすべて消す
- SSH認証を使っているのはGitHubへの接続のみ
手順
ssh-agentに登録されているSSH keyを削除
ssh-add -l
で登録されているSSH keyを確認後、ssh-add -D
で全て削除します。
【注意】キー自体を削除
rm -rf ~/.ssh
でSSH keyのフォルダごと削除します。
SSH KeyのフォルダとSSH key自体を作成
mkdir -p ~/.ssh && ssh-keygen -t ed25519 -C "your_email@example.com"
でSSH keyのフォルダとSSH key自体を作成します。メールアドレスはGitHubで使用しているものに置き換えてください。
作成したSSH keyをssh-agentに追加
eval "$(ssh-agent -s)"
で、ssh-agentをバックグラウンドで実行します。ssh-add -K ~/.ssh/id_ed25519
で秘密鍵をssh-agentに追加します。
SSH configファイルの追加と編集
touch ~/.ssh/config
でconfigファイルを追加し、エディタで下記のように編集してください。
Host *
AddKeysToAgent yes
UseKeychain yes
GitHubに公開鍵を追加
cat ~/.ssh/id_ed25519.pub
を実行し、結果を全てコピーします。
https://github.com/settings/keys にアクセスし、New SSH keyをクリック、TitleにはPCの名前、Keyに先程コピーしたものをペーストしてAdd SSH keyをクリックします。
通信出来るかを確認
ssh -T git@github.com
を実行します。
Hi (your GitHub user name)! You've successfully authenticated, but GitHub does not provide shell access.
と出れば成功です。
参考
Connecting to GitHub with SSH
Generating a new SSH key and adding it to the ssh-agent
Working with SSH key passphrases
macOS SierraでSSH鍵のパスフレーズの件
GitHubでEd25519鍵をつかう
ssh-addで記憶した鍵を登録削除したい場合
【SSH】ssh-agentの使い方を整理する
SSHなるものをよくわからずに使っている人のための手引書