0%

ssh | 免密登陆

参考资料


环境


  • ubuntu

原理


其实 SSH 服务同样可以按照 C-S 架构来进行划分,这里把我们当前的主机抽象为客户端A,把远程的服务器抽象为服务器B

我们首先在本地A主机中生成一对密钥,包括一个私钥和一个公钥。私钥可以理解为用来识别自己身份的表示,公钥可以理解为公开的通行证。

举个通俗的例子,可以把私钥理解为身份证,公钥理解为读卡器,读卡器识别身份证成功,则放行通过。

回到话题,A生成一对密钥,然后将公钥复制到B的授权列表,当 ssh发起请求的时候,服务器会给客户端发送一个随机字符串,客户端收到以后,用私钥进行加密,再传给服务器。服务器再用公钥解密,确认是自己之前发送的随机字符串,说明身份认证通过。

  • RSA 加密是公钥加密私钥解密
  • RSA 身份认证是私钥加密公钥解密

操作


在本地生成了公钥和私钥后,也就是 id_rsa.pub,里面的内容假设为 ****

登录到服务器

cd ~/.ssh

authorized_keys「没有这个文件,就自己新建一个」 文件中,把上面的公钥内容复制进去,就可以了。

当然,有时候,你复制了相关公钥内容后,发现还是不能免密登陆,可能是你本地有大量的 ssh 公钥信息,造成了紊乱,所以,在本地你也可以弄一个 authorized_keys 文件「这个情况是我假设的,没具体操作过」

你可以参考

请我喝杯咖啡吧~