如何验证主机的真实性?

时间:2014-08-13 09:47:18

标签: authentication ssh

第一次使用SSH连接到远程服务器时,我收到此消息:

The authenticity of host '<hostname> (<ip>)' can't be established.
RSA key fingerprint is <fingerprint>.
Are you sure you want to continue connecting (yes/no)?

例如,在尝试连接到GitHub时:

The authenticity of host 'github.com (192.30.252.128)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

我知道此消息已显示,因为之前我还没有访问过此服务器。但这也意味着无法保证服务器的真实性,并且有人可能冒充我尝试连接的服务器。

处理此邮件的正确方法是什么? Stack Overflow上有很多答案simply recommend typing 'yes'recommend disabling the check altogether,但这根本不是一个好主意。我怎么能确定我确实连接到GitHub,而不是另一台试图窃取我的凭据的服务器?

将RSA密钥指纹(16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48)与之比较是否足够provided by GitHub?我可以确定GitHub网站上的信息也没有被篡改过吗?

1 个答案:

答案 0 :(得分:1)

Github(或任何拥有该服务器的人)是唯一可以为您提供可靠的密钥指纹的人。而且这个密钥是唯一能够证明服务器真实性的东西。

当然,该网站可能已被篡改,使您将您的凭据发送到虚假服务器,但您会发现哪些外部来源更值得信赖?如果您想要安全,唯一的方法是找到一种更个性化的方式来接收指纹。这导致螺旋式下降(电子邮件可能被篡改,如果网站被篡改,页面上的电话号码可能已经被更改),这结束于你飞到他们的总部与系统管理员交谈,或者你说它和它只是输入是。