使用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 :(得分:0)
我找不到写入(打开)SSH的known_hosts文件的方法,但由于存在不同的变体(从PuTTY源代码开始),我将离开这个并将接受的主机写入我自己的程序配置。
关于指纹,我发现Paramiko已经提供了这个:PKey.get_fingerprint
。为了获得人类可读的指纹,只需应用binascii.hexlify
。