すべてのSSH接続のHostKeyAlgorithms
のデフォルト設定を変更して、ssh-ed25519
よりもecdsa-sha2-nistp256
を優先したいと思います。しかし、私は現在、ecdsa-sha2-nistp256
ファイル(約70)に多くのホストのknown_hosts
ホストキーを持っています。新しい設定でそのようなホストに接続すると、誰かがそのホストのホストキーを置き換えた場合と同じメッセージが表示されます。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE Host IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a Host key has just been changed.
The fingerprint for the ED25519 key sent by the remote Host is
SHA256:rqhdlN+Qe/GJeWoj3pyhLLSnzSCz68ZA7ds+mG4iZ7o.
Please contact your system administrator.
Add correct Host key in [...]/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in [...]/.ssh/known_hosts:52
ED25519 Host key for [...] has changed and you have requested strict checking.
Host key verification failed.
これで、known_hosts
ファイルからこれらのホストをすべて削除して、次の接続で「新しい」ED25519キーを受け入れる必要はありません。むしろ、そのファイルの既存の内容を継続する方法が欲しいのです。これを行う方法はありますか?例えば。優先アルゴリズムを使用していない場合でも、既知のホストキーにフォールバックします。または、これらすべてのエントリを自動的に置き換える方法はありますか?
nix で同様の質問に答えていたので、短くするために、OpenSSH6.8 +にはオプションUpdateHostKeys
があります。これは、によって提供されるすべてのホストキーを取得する必要があることをクライアントに通知します。サーバ。
これで問題が解決するはずです。