SSHを実行するbashスクリプト内で、特定の既知のRSAキーに対してのみホストを自動的に追加する

SSHを実行するbashスクリプト内で、特定の既知のRSAキーに対してのみホストを自動的に追加する

私は Chron ジョブで bash スクリプトを実行して、サーバに SSH で接続しています。しかし、サーバの IP アドレスは時々変わります (私の bash スクリプトには新しい IP アドレスを検索する方法があります)。しかし、問題は、私の bash スクリプトが「ホストの信頼性を確立できません...」という警告を受け取ることです。私は次StrictHostKeyChecking=noの理由で使用したくないのです。真ん中の男攻撃。しかしながら:

もし、RSAキーは、例えばRSAキーすでにknown_hostファイル内にあるか、RSAキー別のファイルに保存してある場合はMyServersPublicKey、それが私のサーバーであり、新しい IP があるだけだと想定します。

警告自体は、指紋RSAキー「不明」なホストからではなく、RSAキーそれ自体を節約できると思いますRSAキー 指紋ホストのBashスクリプトで指紋警告からそれを保存したものと比較する指紋しかし、もっと簡単な方法を知っている人はいるだろうか。

このためには独自の bash スクリプトを作成する必要がありますか、それとも何か利用できるものはありますか?

答え1

コメントで指摘されているように、証明書 (署名されたホスト キー) を作成すると、この問題を解決するのに役立ちます (ssh-keygenこの手順については、のマニュアル ページの「証明書」の章を参照してください)。基本的には、サーバー上に CA を作成し、ホスト キーに署名して、次のように CA 公開キーを保存しますknown_hosts

@cert-authority * ssh-rsa AAAAB5W...

もう 1 つの可能性は、ホスト キーの前に IP を追加する bash スクリプトを作成することですknown_hosts(そのファイルをハッシュしていない場合)。次のようなものが機能するはずです。

sed -i -e "s/your_host/new_ip,your_host/" ~/.ssh/known_hosts

関連情報