2021/9/26 にリリースされた OpenSSH 8.8 から rsa-ssh
形式の SSH 鍵がデフォルトで無効になりました。
良い機会なので、新しい暗号鍵形式に変更しましょう。
どうしても変えることができない人は、OpenSSH の設定ファイルを変更して ssh-rsa を再び使えるようにしましょう(非推奨)
より安全な鍵を生成する (楕円曲線)
僕の周りでは ecdsa-sha2-nistp521 アルゴリズムを使っている方が多いような気がします。
その場合の鍵生成方法は
ssh-keygen -t ecdsa -b 521 -C "コメント(メールアドレスとか)"
Mac OS だと、以下のような感じで生成されます。
% ssh-keygen -t ecdsa -b 521 -C "katz@example.com"
Generating public/private ecdsa key pair.
Enter file in which to save the key (/Users/ユーザー名/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/ユーザー名/.ssh/id_ecdsa
Your public key has been saved in /Users/ユーザー名/.ssh/id_ecdsa.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx katz@example.com
The key's randomart image is:
+---[ECDSA 521]---+
| XXXXXカットXXXX |
| XXXXXカットXXXX |
| XXXXXカットXXXX |
| XXXXXカットXXXX |
| XXXXXカットXXXX |
| XXXXXカットXXXX |
| XXXXXカットXXXX |
| XXXXXカットXXXX |
| XXXXXカットXXXX |
+----[SHA256]-----+
Windows であれば TeraTerm などのソフトで生成できます。参考「Windows10からLinuxへのSSHにセキュリティの高い公開鍵認証を設定する手順」
鍵ファイルは id_ecdsa
や id_ecdsa.pub
などが生成されます。
上記の出力をよく見ると、鍵の保存場所がかかれているので、
それに応じて公開鍵などをゲットして必要なところへ渡すなどしてください。
各暗号形式と ssh-keygen での生成方法の相対表
他の暗号形式で鍵を生成したい場合の ssh-keygen コマンドのオプション例です。
暗号形式 | ssh-keygen コマンドオプション |
---|---|
ssh-ed25519 | ssh-keygen -t ed25519 |
ecdsa-sha2-nistp256 | ssh-keygen -t ecdsa -b 256 |
ecdsa-sha2-nistp384 | ssh-keygen -t ecdsa -b 384 |
ecdsa-sha2-nistp521 | ssh-keygen -t ecdsa -b 521 |