ssh-rsa,非推奨のお知らせ

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 はバグがあるようです)

本文

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 も非推奨になるそうです。

なお,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 4096ssh-keygen -t ecdsa -b 521 というようになるべく大きな鍵長を指定するようにすると,より安全です。