1

Paramiko を使用すると、次のように SSH キーのコールバックを設定できます。

def someCallbackFunction(client, hostname, key):
    ...

client = SSHClient()

client.load_system_host_keys()
client.set_missing_host_key_policy(someCallbackFunction) # <--
client.connect(...)

コールバックは、SSH クライアント インスタンス、ホスト名、およびparamiko.RSAKeyインスタンスをパラメーターとして取得し、キーが受け入れられた場合は戻るか、そうでない場合は例外を発生させる必要があります。

提供されたパラメータを使用して SSH キーを確認するにはどうすればよいですか? たとえば、ユーザーが比較できるように RSA フィンガープリントを取得するにはどうすればよいでしょうか? また、Paramiko に "known_hosts" にキーを永続的に追加させることは可能ですか?

4

1 に答える 1

0

(Open)SSH の known_hosts ファイルに書き込む方法が見つかりませんでしたが、(PuTTY ソース コードの時点で) さまざまなバリエーションがあるため、これはそのままにして、受け入れられたホストを自分のプログラムの構成に書き込みます。

フィンガープリントに関しては、Paramiko が既にこれを提供していることがわかりましたPKey.get_fingerprint。人間が判読できる指紋を取得するには、単純に を適用しますbinascii.hexlify

于 2011-03-09T10:41:14.017 に答える