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

2024-10-01 11:38:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pythonparamiko通过ssh连接到vps提供程序上托管的远程ubuntu设备。使用基于windows 7的客户端计算机,我可以按如下方式连接:

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将无法获取已知的\u hosts文件或类似文件。我尝试了以下代码:

^{pr2}$

其输出与以下类似:

a42273f83e62d65cc87231a2ba33eff3

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

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

如图所示,没有一个指纹与生成的指纹相匹配。如何将手动生成的指纹与远程主机的面板上的指纹值进行比较?我做的对吗?在


Tags: 文件import程序paramiko客户端远程ubuntuvps
1条回答
网友
1楼 · 发布于 2024-10-01 11:38:55

解决了,结果显示在控制面板上的RSA密钥指纹不是针对VPS主机的,而是针对带外专用控制台的。(VPS主机的)实际密钥位于:/etc/ssh/ssh_host_rsa下_键.pub指纹值(它的MD5散列)正是我从客户端验证代码中得到的。所以一开始没什么问题。在

相关问题 更多 >