诉求:jenkins部署流水线脚本中,需要跨内部linux服务器进行通信,为此去建立两台linux服务器互信,进行免密登录。
1、首先保证两台服务器(如本次需打通233、170间通信)是可通信的,处在相同局域网、彼此在互信白名单中,通过密码或密钥可互相访问;
2、233之前已经生成过SSH密钥对pem文件,直接去170上添加认证,即可免密登录:
在170上添加233的ssh密钥对,170可免密登录233:
[cloud-user@host-10-70-193-170 ~]$ ssh-add -k opm2018test.pem
Identity added: opm2018test.pem (opm2018test.pem)
[cloud-user@host-10-70-193-170 ~]$ ssh cloud-user@10.70.208.233
Last login: Fri Oct 12 16:39:37 2018 from 10.167.41.212
[cloud-user@host-10-70-208-233 ~]$
3、手动在170生成一个pem文件:
$openssl genrsa -out 170_rsa_private_key.pem 1024
此文件是1024位私钥:
4、copy 私钥(170的私钥)到需要免密登录的主机(233,需要免密登录170)
$ scp 170_rsa_private_key.pem cloud-user@10.70.208.233:/home/cloud-user/
执行添加私钥
[cloud-user@host-10-70-208-233 ~]$ chmod 500 170_rsa_private_key.pem
[cloud-user@host-10-70-208-233 ~]$ ssh-add -k 170_rsa_private_key.pem
Could not open a connection to your authentication agent.
[cloud-user@host-10-70-208-233 ~]$ eval `ssh-agent -s`
Agent pid 29516
[cloud-user@host-10-70-208-233 ~]$ ssh-add -k 170_rsa_private_key.pem
Identity added: 170_rsa_private_key.pem (170_rsa_private_key.pem)
完成服务器间互信。
5、验证免密登录: