search
LoginSignup
2

posted at

updated at

SSH 公開鍵を ssh-rsa から強い暗号に書き換える

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_ecdsaid_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

参考

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
What you can do with signing up
2