SSH免密登录

在登录远程开发机要一直输入登录密码挺让我厌烦的,因此搞下免密登录,顺便了解下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解密的结果跟之前生成的字符串进行比较,若相同,则允许直接登录。
密钥登录
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容