2017-11-22 7 views
0

を使用してホスト鍵が変更されたときにknown_hostsファイルを自動的に更新現在、Paramiko(Pythonで)を使用してノードでリモートコマンドを実行しています。時には、リモートノードが公開鍵を変更するため、Paramikoは指紋が一致しないため失敗します。それらが変更されたときにknown_hostsファイルのキーを更新する方法はありますか?これが不可能ならば、投げられた警告を無視する他の方法はありますか?Paramiko

現在、私は、電話をかける前に、known_hostsファイルが削除されたハックな解決策を持っています。それがハイジャックされている接続(別名Man-in-the-middle attack)の符号であるよう

-Prashanth

+0

ご質問は不明です。ユーザにホスト鍵の変更を確認し、それに応じて 'known_hosts'ファイルを更新するように促しますか?または、警告を無視したいですか?警告を無視するには、なぜ 'known_hosts'ファイルを更新する必要がありますか?また、警告を無視した場合の結果を認識していますか? –

+0

Questionはknown_hostsファイルを、BadKeyExeceptiobn()をスローするときにリモートサーバーから取得した新しいキーで更新します。私はparamikoでいくつかの例を見て、できましたが、私はホストの2つのエントリを参照してください。私はクラスparamiko.hostkeys.HostKeys()クラスを使用して、キーを更新するためにadd()を使用しています。 – pkumarn

+0

私はあなたが私の質問に答えたとは思わない。 'BadHostKeyException'を取得したときになぜ' known_hosts'にホストキーを追加したいのですか? –

答えて

1

BadHostKeyExceptionは、ときにホスト鍵が変更スローされます。

例外を無視して無視してはいけません。クライアントと同じプライベートネットワークにあるサーバーに接続する場合を除き、多分です。

具体的には、サーバーの再インストール時にホストキーを保持する方が良い方法です。

とにかく

、あなたは本当にセキュリティを気にし、盲目的に任意のホストキーを受け入れることを喜んでいない場合:あなたは空白のリストで始まるように

  • は、SSHClient.load_host_keysを呼び出すことはありませんホスト鍵を知っている。
  • と、自動的に新しいホストのホスト鍵を受け入れるように、AutoAddPolicyを使用します(すべてのホストが原因以前のポイントに新しいです):

    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())