推奨は2048ビットキーをすぐに段階的に廃止することなので、sshサーバーを2048ビットRSAキーからより大きなキーにアップグレードしようとしています。
次のように、新しいキーを生成し、それをsshd構成に追加しました。
HostKey / etc / ssh / ssh_host_rsa_key (古い2kビットのキーが最初) HostKey / etc / ssh / ssh_host_rsa4096_key (新しい大きなキー2番目)
再起動後sshd
、ホストにsshしますが、IDが変更されたという警告は表示されませんが、新しいものはにキャッシュされません~/.ssh/known_hosts
。行を逆の順序で配置すると、IDが変更されたという警告が表示されます。同様に、ed25519キーを追加するとき、どの順序で入力しても、クライアントは既知のホストファイルに新しいキーを追加しません。
これにより、SSHホストキーのロールオーバーが不可能になっているようです。しかし、セキュリティを考慮すると、キーのアップグレードが定期的に必要になるため、実際にはそうではないと考えるのは困難です。
キーを交換するだけで、すべてのクライアントを実行ssh-keygen -R
して古いキーを削除し、新しいキーを手動で確認して受け入れる必要があることはわかっています。しかし、特に多くのクライアントが接続している場合や管理していない場合すべてのクライアント。言うまでもなく、クライアントを管理しない場合、実際にホストキーを確認せず、代わりに単にYを押す可能性が非常に高いので、セキュリティを改善しようとすると、実際にman-in-代わりに中間攻撃。
SSHホストキーのアップグレードを機能させる方法はありますか?つまり、クライアントは新しいより安全なキーを学習する必要があります(また、できれば古いキーを学習しないでください)。また、ホストキーを変更せずに、中間者警告を変更しました。