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