【测试环境】如何配置环境免密登录
2022-04-29 16:24 码上起舞 阅读(220) 评论(0) 收藏 举报一、目的
本文主要记录在工作中为了jenkins集成方便,配置了在jenkins和测试服务器之间的免密设置,方便免密登录。
二、步骤
eg:为了jenkins新增自动化部署job,所以需要2个服务器建立信任 (A to B) jenkins机器为A,测试服务器为B
- 建立信任之前,需要确认是否有rsa (#ls ~/.ssh/),如果没有在A上执行: ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 生成rsa (PS:不要轻易重建公钥!!)
- 复制A机器的公钥到B机器上,这样就可以使用在A机器上免密码登录B机器了 ssh-copy-id -i ~/.ssh/id_rsa.pub -p22 appuser@10.1.2.3(A to B) 提示输入B机器密码,确认则ok
【***】若拷贝的时候遇到找不到路径:执行 /usr/bin/ssh-copy-id -i id_rsa.pub -p22 appuser@10.1.2.3
3.确认是否建立信任ok ssh -p '22' 'appuser@10.1.2.3'
三、出于安全考虑,如果不知道测试服务器密码,如何配置免密呢?
解决办法就是:给测试机器配置authorized_keys
同样的A是jenkins服务器,B是测试服务器
操作如下:
3.1、把jenkins这台机器的公钥id_rsa.pub配置到测试机器B的authorized_keys文件中(如果没有,先ssh-keygen生成)
在测试服务器B执行下面命令
echo "ssh-rsa AAAAB3NzaC1yctDrX97587Zkr7TOdsnXbSCI6euX2qb+TydlXAXlv1jtfa2+IV8SAw5+h24Ablmqpd1yFQpzBcguWvOhP4QnIXAMNSyaomZZGnyaVd 1abc@abc" >> /home/user/.ssh/authorized_keys |
前面这串的内容就是jenkins的私钥内容,在jenkins上执行cat id_rsa.pub
3.2、在jenkins服务器A上执行以下命令(ip替换为相应服务器ip),目的是将ip等信息加入到know_host中
echo 1.2.3.2 eca-sh2-nstp6 AAAAasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfNhLXNoYTItbmlzdHAo= >> ~/.ssh/known_hosts |
此步骤是为了避免在免密ssh登录过程中提示yes/no这个提示
还可以采用另一种方式替换达到这个目的,可以手动执行ssh envBip后直接输入yes,同样可以在know_host中找到这个记录
四、Troubshooting
1.如果都配置好后,还是ssh失败,则有可能是StrictModes问题
编辑 sudo vi /etc/ssh/sshd_config
找到 #StrictModes yes 改成 StrictModes no
重启 sudo systemctl restart sshd
浙公网安备 33010602011771号