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

我找不到写入(打开)SSH 的 known_hosts 文件的方法,但由于有不同的变体(从 PuTTY 源代码开始),我将只留下这个并将接受的主机写入我自己的程序配置。

关于指纹,我发现 Paramiko 已经提供了这个:PKey.get_fingerprint. 为了获得人类可读的指纹,只需应用binascii.hexlify.

于 2011-03-09T10:41:14.017 回答