要实现CentOS 7.6上的Docker容器中的Jenkins免密登录到CentOS 6.5服务器(前提是ssh版本都要7以上),你需要在Jenkins容器内生成SSH密钥,并将公钥添加到CentOS 6.5服务器上。以下是详细步骤:
1. 在Jenkins容器中生成SSH密钥
-
进入Jenkins容器:
docker exec -it jenkins /bin/bash -
生成SSH密钥:
- 使用
ssh-keygen生成密钥,按提示操作,可以直接按Enter使用默认设置。
ssh-keygen- 密钥将会被保存在
~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。
- 使用
2. 将公钥添加到CentOS 6.5服务器
-
查看并复制公钥:
cat ~/.ssh/id_rsa.pub- 这会显示公钥内容,复制这个内容。
-
登录到CentOS 6.5服务器:
- 在你的本地机器上,使用SSH登录到
10.11.1.10。
- 在你的本地机器上,使用SSH登录到
-
添加公钥到
~/.ssh/authorized_keys:- 在
10.11.1.10上,编辑~/.ssh/authorized_keys文件,将复制的公钥内容粘贴进去。
echo '复制的公钥内容' >> ~/.ssh/authorized_keys- 确保
~/.ssh目录和authorized_keys文件的权限正确(~/.ssh目录权限为700,authorized_keys文件权限为600)。
- 在
3. 测试免密登录
- 在Jenkins容器内尝试使用SSH连接到
10.11.1.10,应该可以无需密码直接登录。
ssh 10.11.1.10
注意事项
在容器中删除主机:
ssh-keygen -f "/root/.ssh/known_hosts" -R "10.11.1.10"
- 确保
10.11.1.10的SSH服务允许使用密钥认证。 - 如果在步骤中遇到任何权限问题,请检查相关文件和目录的权限设置。
- 对于生产环境,确保遵循你的组织的安全策略和最佳实践。
按照这些步骤操作,你应该能够实现Jenkins容器到CentOS 6.5服务器的免密SSH登录。