代码改变世界

【测试环境】如何配置环境免密登录

  码上起舞  阅读(189)  评论(0编辑  收藏  举报

一、目的

本文主要记录在工作中为了jenkins集成方便,配置了在jenkins和测试服务器之间的免密设置,方便免密登录。

二、步骤

 eg:为了jenkins新增自动化部署job,所以需要2个服务器建立信任 (A to B) jenkins机器为A,测试服务器为B

  1. 建立信任之前,需要确认是否有rsa (#ls ~/.ssh/),如果没有在A上执行:    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  生成rsa  (PS:不要轻易重建公钥!!)
  2. 复制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

 

(评论功能已被禁用)
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示