ssh密匙登录的原理和风险

106 阅读2分钟

ssh密匙登录原理

原理图

6.png

登录过程

  1. 客户端(图左)要登录服务端(图右),发起连接请求ssh user@server.com 7.png
  2. 服务端运行有ssh服务,并持续监听22号端口,因此可以生成一对公钥和私钥;此时将公钥返回给客户端。 说明:被返回的公匙存储在/root/.ssh/known_hosts
  3. 客户端使用公钥,对登录密码进行加密,(如密码为xxx),生成公钥加密字符串,并传递给服务端。
  4. 服务端使用私钥,解密公钥加密字符串,得到原始密码,并确认密码是否正确(如是否为xxx)。
  5. 返回登录结果给客户端:成功登录或密码错误。

ssh登录存在的风险

攻击者伪装成Hacker 8.png 在该示例图中,存在Hacker服务器劫持了你的ssh连接请求(如通过DNS劫持等方式),导致你与Hacker机器的连接一切正常,因此它能拿到你的明文密码,并通过明文密码来攻击真实的服务端。

风险解决办法

原理

被登录过的服务端发生变更后(例如变为Hacker),再次登录时返回给客户端的公匙会相应发生变化。此时客户端会收到警告提醒,需人工确客户端是否可信。如图所示。 9.png

解决办法

当收到公匙发生变更的提醒时,如果是因为如下原因导致,那么是正常的,可以放心登录(以IP登录服务端为例):

  • 多台服务端IP重新配置,IP与操作系统对应关系变化了。
  • 服务端IP不变,但重装了操作系统。
  • 服务端IP不变,但更换了ssh登录的网卡。

其他情况,请不要继续登录,或请专家加以判断,防止密匙被窃取。