环境背景:现有A,B两台服务器。A有gitlab,B是部署环境,需要在A环境上执行shell脚本,shell脚本中包含ssh roo@*.*.*.*等等,
此时需要ssh 免密登录。
1、
在A上执行: cd /root/.ssh
在/root/.ssh目录下是否有id_rsa和id_rsa.pub两个文件,如果没有则执行下面操作,有的话就不需要操作(不然会覆盖私钥和公钥,如果这台机器有免密登录其他机器,那其他机器也要替换新的公钥了)
在A上执行:ssh-keygen -t rsa
3个回车键,不用输入密码,生成两个文件:
/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
2、
将公钥发送给B机器,scp /root/.ssh/id_rsa.pub root@xx.xx.xx.xx:/root/.ssh/
在B机器的/root/.ssh/目录下生成authorized_keys文件(有就不需要再次生成):
touch /root/.ssh/authorized_keys
将公钥的内容追加到authorized_keys文件后
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
3、测试一下在A机器上执行 ssh B的IP
在A机器退出登录B,执行exit
4、完成
相关阅读:
centos ssh免密码秘钥登录 - 卡卡西村长 - 博客园
解决Host key verification failed.(亲测有效)_向小凯同学学习的博客-CSDN博客_host key verification
SSH下authorized_keys, id_rsa, id_rsa.pub, known_hosts作用 - 割肉机 - 博客园
ssh 远程登录 不用密码设置方法 ssh-keygen -t rsa_吉吉爱马仕的博客-CSDN博客
--------------------------------
https://www.dandelioncloud.cn/article/details/1508736876235268097
登录xx.xx.xx.123,进入/home/gitlab-runner/.ssh目录(因为这里是gitlab-runner用户要执行ssh,所以要进入gitlab-runner的主目录)