Engineer as a Lifestyle @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

ssh設定アップデート(ed25519鍵を使う)

新しい環境を作る機会もあるので、sshの設定も見直すことにしました。 いままで2048bit RSA鍵を使っていましたがed25519鍵を使うことにします。 ローカルPCには.ssh/id_rsa, .ssh/id_rsa.pub が作成されていることとします。

$ ls -al .ssh
total 64
drwx------   9 tenkoma  staff   306  2 18  2017 .
drwxr-xr-x+ 91 tenkoma  staff  3094  8 26 11:04 ..
-rw-r--r--   1 tenkoma  staff   117  1 14  2017 config
-rw-------   1 tenkoma  staff  3326 11 19  2016 id_rsa
-rw-r--r--   1 tenkoma  staff   752 11 19  2016 id_rsa.pub
-rw-r--r--   1 tenkoma  staff  6622  4  2 20:23 known_hosts

次のコマンドでed25519鍵を生成します。

$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/tenkoma/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/tenkoma/.ssh/id_ed25519.
Your public key has been saved in /Users/tenkoma/.ssh/id_ed25519.pub.
The key fingerprint is:
(略)
The key's randomart image is:
(略)

.ssh/id_ed25519, .ssh/id_ed25519.pub が作成されました。

https://github.com/settings/keys にアクセスして、既存の鍵を削除し、.ssh/id_ed25519.pubの中身のテキストを登録します。

登録したらGitHubに接続テストします。ssh-add でsshエージェントに登録し、毎回パスフレーズを聞かれないようにします。

$ ssh-add -D
All identities removed.
$ ssh-add .ssh/id_ed25519
Enter passphrase for .ssh/id_ed25519:
Identity added: .ssh/id_ed25519 (tenkoma@KojinoMacBook-Pro.local)
$ ssh -T git@github.com
Hi tenkoma! You've successfully authenticated, but GitHub does not provide shell access.

メッセージが表示されたら成功です。

古い鍵を順次アップデートするために

ssh 接続するとき、自動的に.ssh/id_rsaを利用するため、古い設定が残り続けていても気づかない恐れがあります。.ssh/id_rsa, .ssh/id_rsa.pubをリネームして、接続できなかった場合に ssh -i ~/.ssh/id_rsa_deprecated username@example.com でログインしてリモートの鍵を更新します。やむをえず古い鍵を使う場合は、.ssh/config に設定しておきます。

Host deprecated-ssh-key-host.example.com
    IdentityFile ~/.ssh/id_rsa_deprecated