实现由A服务器(client)免密传输到B服务器(server)。
1、在A服务器(client)上输入命令ssh-keygen -t rsa,回车、回车、回车
生成的公私钥对默认放在了$HOME/.ssh下,我这里是/home/dengjh/.ssh 目录下
2、将A服务器上生产上的公钥id_rsa.pub,用远程命令scp拷贝到B服务器上(server)
scp id_rsa.pub report@192.168.50.16:/home/report/.ssh/id_rsa.pub8012 此时需要输入密码
拷贝到50.16,文件名id_rsa.pub改成id_rsa.pub8012(因为我50.16上有一个id_rsa.pub)
tips:此时输入密码,说明A到B是有权限的。下次B接收到文件信息,先看下已经授权的列表authorized_kes,发现A在,就无需A再次输入到B的密码了。
3、若B的目录下无authoried_keys,则将id_rsa.pub8012 改名成 authorized_keys(名字一定要是authorized_keys,否则无效)
若有authoried_keys,则用cat id_rsa.pub8012 >> authorized_keys 追加到授权列表里面。
4、测试,从A服务器scp一个文件到B服务器
无需输入密码。
此时ssh 由A登录到B时,ssh report@192.168.50.16 无需密码即可登录
原理:登录时,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用实现存储的公钥进行解密,如果成功,证明用户是可信的,允许用户登录,无需再次输入密码。
由B传输到A,同理
参考
https://blog.csdn.net/try2find/article/details/80722500
https://www.jianshu.com/p/2cc2ff9cc53f