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

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

bashスクリプトを実行し、SSHを介して私のサーバーに接続するChronジョブがあります。しかし、私のサーバーの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

関連情報