2011-03-01 154 views
1

用的paramiko,可以设置一个SSH密钥回调是这样的:的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”?

回答

0

我无法找到写入(打开)SSH的known_hosts文件的方式,但由于存在不同的变体(截至PuTTY源代码),我将保留这一点,并将接受的主机写入我自己的程序配置。

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