首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Paramiko:手动验证SSH主机密钥指纹

Python Paramiko:手动验证SSH主机密钥指纹
EN

Stack Overflow用户
提问于 2012-08-30 20:19:33
回答 1查看 4.2K关注 0票数 2

我正在使用python Paramiko通过ssh连接到vps提供商托管的一个远程ubuntu box。使用基于Windows7的客户端机器,我可以像下面这样连接:

代码语言:javascript
复制
import paramiko
import binascii
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='HOSTNAME', username='USERNAME', password='PASSWORD')

这一切都很好,但是现在我想要验证主机服务器的身份,因为我在windows上,Paramiko将无法获取known_hosts文件或类似的文件。我尝试了以下代码:

代码语言:javascript
复制
#... after connection is successful
keys = ssh.get_host_keys()
key = keys['HOSTNAME']['ssh-rsa']
print binascii.hexlify(key.get_fingerprint())
# key.get_fingerprint() returns the md5 hash of 
# the public part of the key (whatever that means)

它给出了类似于以下内容的输出:

代码语言:javascript
复制
a42273f83e62d65cc87231a2ba33eff3

问题是,在我的VPS提供商的cpanel上,我列出了RSA和DSA主机密钥指纹,如下所示:

代码语言:javascript
复制
RSA 1b:c2:f4:8f:f2:86:fc:f2:96:ba:cc:24:41:e9:d7:86
DSA 36:b9:1f:ad:53:b5:c4:38:78:bf:cb:9d:38:fa:44:ce

可以看出,没有一个指纹与生成的指纹匹配。如何将手动生成的指纹与远程主机cpanel上的指纹值进行比较?我做的是对的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-31 05:22:59

解决后,原来控制面板中显示的RSA密钥指纹不是VPS主机的,而是带外特殊控制台的。实际的密钥( VPS主机的)位于:/etc/ssh/sshhostrsakey.pub下,而指纹值(它的MD5散列)正是我从客户端验证码获得的内容。所以一开始就没有任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12196700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档