これは OpenSSH StrictHostKeyChecking v9 が (IMHO 合理的な) デフォルトであるためです。
~/.ssh/known_hosts
これにより、ファイルのホストキーが変更されるまでホストキーが変更されると、SSHは接続を拒否します。警告メッセージが十分に明確であるため、対話式の使用に問題はありません。しかし、SSHを使用して分散コマンドを実行するスクリプトがたくさんあります。一般的な呼び出しは次のとおりです。
ssh -nqo 'BatchMode = yes' "$chHost" "$chCmd"
次に、すべてのホストでループとして実行します。非対話型の使用のためにスクリプトで変更されたホストキーを変更する方法を探しています。次のコマンドを使用して古いキーを削除できます。
ssh-keygen -R "$chHost"
しかし、キーをクリアした後、ソフトウェアは新しいキーを受け入れるために対話的に「yes」と入力する必要があり、これまで非対話型セッションでこれを行う方法を見つけることができませんでした。一方、StrictHostKeyChecking設定を置き換えるのはオフになります。新しいホストキーはKnown_hostsファイルにのみ追加され(以前のホストキーは削除されません)、1つのホストに複数の(古い)キーがある可能性があるためです。キーがそこにあり、ファイルをできるだけきれいに保ちたいです(例:関連性のある最新情報のみを含む)。
参考として、私が使用しているシステムはAIX 7200-05-06-2320または7200-05-07-2346で、OpenSSHバージョンは9.2.112.2000です。