centos 传输连接不用输入密码

ssh 服务登录方式有两种:

  用户/口令

  基于秘钥

基于用户和口令登录验证:

  1 客户端发起ssh请求,服务器会把自己的公钥发送给用户

  2 用户会根据服务器发来的公钥对密码进行加密

  3 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确, 则用户登录成功  

基于用户名口令登录验证:

 ssh 服务基于密钥登录验证:

   基于密钥的登录方式
  1 首先在客户端生成一对密钥(ssh-keygen)
   2 并将客户端的公钥ssh-copy-id 拷贝到服务端
  3 当客户端再次发送一个连接请求,包括ip、用户名
  4 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:magedu
  5 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
  6 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
  7服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

ssh-keygen # 生成客户端公钥文件,默认是rsa 
ssh-copy-id -i /root/.ssh/id_rsa root@172.16.8.180 复制私钥文件或公钥文件到服务端172.16.8.180,默认发的还是公钥
ssh-keygen -t dsa  # 生成客户端公钥文件 指定dsa算法
sh-copy-id -i /root/.ssh/id_dsa root@172.16.8.180 

互相之间传文件或执行命令也不用输入密码

原文地址:https://www.cnblogs.com/alexlv/p/13518957.html