Paramiko:验证并永久添加SSH主机密钥

时间:2011-03-01 09:17:06

标签: ssh-keys paramiko

使用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”?

1 个答案:

答案 0 :(得分:0)

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

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