【测试环境】如何配置环境免密登录
2022-04-29 16:24 码上起舞 阅读(189) 评论(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 AAAAasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfNhLXNoYTItbmlzdHA o= >> ~/. 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架