新しい環境を作る機会もあるので、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