2020-05-28T14:11+9:00 追記
これは SHA-1 を用いた RSA 鍵についての話で,OpenSSH 7.2 以降で生成・利用される RSA 鍵はまだ利用可能です
2020-05-28T19:27+9:00 追記
既に生成されている RSA 鍵でもホスト・クライアントの両方が OpenSSH 7.2 以降ホスト・クライアントの両方が OpenSSH 7.2 以降,ただしサーバー側は OpenSSH 7.4 以外であれば SHA-2 で署名するので大丈夫なようです。(OpenSSH 7.4 はバグがあるようです)
ssh-rsaという名前は"公開鍵の形式"と"公開鍵を使った署名方式"の二つで使われていて、廃止対象となっているのは署名方式の方だけです。なのでOpenSSH 7.2以降を入れれば、鍵自体は古いOpenSSHで生成した物がそのまま使えます。
— いわもと こういち (@ttdoda) May 28, 2020
openssh-unix-devで指摘が出ていますが、OpenSSH 7.4のバグで、サーバ側が7.4だとrsa-sha2-256/512が使えると通知してこないのでssh-rsaでユーザ認証が行われてしまいます。これはユーザ認証時のみの問題で、ホスト鍵の確認には影響しません。 https://t.co/oyNVS08jGI
— いわもと こういち (@ttdoda) May 30, 2020
本文
OpenSSH 8.3 がリリースされたとのこと OpenSSH 8.3 released (and ssh-rsa deprecation notice) [LWN.net]
これに伴ない,ssh-rsa は将来的に deprecate になり,デフォルトでこの鍵形式を利用する機能自体が無効化されることが改めて告知されました。
サーバー側がこの形式を利用しているかどうを確認するには,`HostKeyAlgorithms` ディレクティヴから ssh-rsa を取り除いた上で以下のコマンドを使うこと
ssh -oHostKeyAlgorithms=-ssh-rsa user@host
`HostKeyAlgorithms` は ~/.ssh/config
で利用する鍵形式を指定できます。
現在は SHA-1 ハッシュを用いているアルゴリズムが $50K 以下で chosen-prefix attack という手法で攻撃できてしまうことから,ssh-rsa も非推奨になるそうです。
- "SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust" Leurent, G and Peyrin, T (2020)
- Collision attack - Wikipedia
なお,ssh-rsa と同じ形式の鍵ですが SHA-2 ハッシュを用いている rsa-sha2-256/512 は OpenSSH 7.2 からサポートされており,ほかにも ECDSA 形式の ecdsa-sha2-nistp256/384/521 が OpenSSH 5.7 から,ssh-ed25519 が OpenSSH 7.2 から利用できます。
ssh-keygen -t ecdsa
ssh-keygen -t ed25519
また,鍵生成のときは,以上に加えて, ssh-keygen -t rsa -b 4096
,ssh-keygen -t ecdsa -b 521
というようになるべく大きな鍵長を指定するようにすると,より安全です。