欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

SSH免密登录

最编程 2024-08-03 14:15:21
...

在登录远程开发机要一直输入登录密码挺让我厌烦的,因此搞下免密登录,顺便了解下ssh的原理。

如何设置免密登录
  1. 在本地使用命令ssh-keygen -t rsa生成公钥id_rsa和私钥id_rsa.pub文件,生成的文件在目录~/.ssh/下;
  2. 将公钥通过scp(或其他发生)复制公钥文件id_rsa.pub到远程开发机上;
  3. 通过命令cat id_rsa.pub >> ~/.ssh/authorized_keys添加到文件authorized_keys上,确保该文件的权限为可读可写
  4. 现在可以免密登录远程开发机了。
ssh登录原理

ssh的登录原理其实就是利用非对称公私钥来验证身份

ssh密码登录
  1. 客户端A像服务器B发起ssh连接;
  2. 服务器B将自己的公钥发送给客户端A(客户端会将该信息记录到文件~/.ssh/known_hosts,下次会将服务器给的公钥和记录的进行比较,不一致就会发出警告);
  3. 客户端A将用户名和密码通过服务器B的公钥进行加密,发送给服务器B;
  4. 服务器B利用自身的私钥对客户端A发送的数据进行解密,并验证用户名和密码是否正确。
ssh密码登录
ssh密钥登录
  1. 客户端A发起ssh连接并将用户名等信息发送给服务器B;
  2. 服务器B在本地文件authorized_keys是否有客户端A的公钥文件;
  3. 如果存在公钥文件,那么服务器B会生成一个随机字符串,并用客户端A的公钥文件进行加密,发送给客户端A;
  4. 客户端A用自己的私钥进行解密,并将解密结果发送给服务器B;
  5. 服务器B将客户端A解密的结果跟之前生成的字符串进行比较,若相同,则允许直接登录。
密钥登录