如何获取并验证你的SSH密钥指纹?
创始人
2024-07-30 20:30:26
0

【51CTO精选译文】有时你在登录到一台机器之后,发现SSH密钥改变了。这种情况可能是由于中间人攻击导致,但更多的情况下,是因为主机被重建,生成了新的SSH密钥(所以大家重建服务器的时候要养成保存恢复SSH密钥的好习惯)。

那么,应该如何检查指纹? 

你可以直接通过网络从远程服务器上获取公共密钥:

ssh-keyscan -p 22 -t rsa,dsa remote_host > /tmp/ssh_host_rsa_dsa_key.pub
#使用你的主机名或IP地址替换remote_host字段

然后你就可以通过这个文件生成指纹:

ssh-keygen -l -f /tmp/ssh_host_rsa_dsa_key.pub

不过,如果你的密钥在其他因素下改变,而你想要探索它改变的原因,那么网络的方式是不够的。想办法通过其他方式登录到真机上(比如通过管理控制台或KVM控制台),然后直接生成指纹:

ssh-keygen -lf /etc/ssh/ssh_host_dsa_key
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key

然后,与你通过网络得到的指纹进行对比。如果它们匹配,那么万事ok;如果不匹配,那么你可能有麻烦了。

如果指纹不匹配,那么你应该先做一个针对ARP请求的网络扫描,看看有哪个IP地址回应了ARP请求。在ping的时候扫描一下看看有没有ARP请求。如果有两个主机,那么它们会为一个ARP条目而“互掐”起来,你应该能看到两个回应。

一旦你知道了这个神秘主机的以太网地址,就可以通过路由(或交换机)接口上跟踪到ARP流量的去处。

原文:http://administratosphere.wordpress.com/2011/05/28/getting-and-verifying-ssh-fingerprints/

【有关SSH密钥指纹】

为了避免中间人(man-in-the-middle)攻击,管理员在通过SSH远程连接主机的时候,SSH会生成主机指纹并请求保存。服务器的管理员可以发送密钥指纹给客户端,来让其在首次登陆时验证服务器的真实性。在之后的连接中,都会验证与保存的指纹是否匹配。如果不匹配,SSH会给出警告说明密钥变更。

【编辑推荐】

  1. 7条技巧助您增强SSH安全性
  2. 详解Linux下SSH远程文件传输命令scp
  3. 用ClusterSSH管理多台Linux服务器

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...