【背景】 两个服务器之间 每天定时有传输文件的需求,但是又涉及到交互 如输入密码,yes 确认等,想让定时任务处理就有点棘手,确实不想用expect来处理,因为懒得安,所以最后决定直接使用公钥的方式来处理
假设本地为客户端A(tony@192.168.3.6),远程服务端为B(tom@192.168.3.100),
定时从B复制文件夹内容到A:
1. 设置免密登陆
在客户端(A )生成一对公钥和秘钥,使用 ssh-keygen -t rsa生成,一路回车即可;
sudo su
ssh-keygen -t rsa
2.进入秘钥文件夹查看文件: 其中id_rsa.pub是公钥,id_rsa是私钥;
//进入文件夹
cd /root/.ssh
3.把id_rsa.pub上传到到服务端(B);
scp /root/.ssh/id_rsa.pub tom@192.168.3.100:/home/tom/
4.在服务端(B)上生成公钥和密钥(不需要进入root),使用 ssh-keygen -t rsa生成,一路回车即可;
5.在服务端(B)上创建authorized_keys,并把(3)上传A的id_rsa.pub的内容拷贝到服务端(B )的 authorized_keys:
touch ~/.ssh/authorized_keys
cat /home/tom/id_rsa.pub >> ~/.ssh/authorized_keys
然后就搞定了