jenkins - Docker,如何处理 ssh key 、known_hosts 和 authorized_keys

标签 jenkins docker ssh configuration ansible

在 docker 中,当容器必须与外部系统通信时,如何根据配置 known_hosts、authorized_keys 和 ssh 连接的要求进行范围?

例如,我正在运行 jenkins 容器并尝试在作业中从 github checkout 项目,但连接失败并出现错误 host key verification failed

这可以通过登录容器来解决,手动连接到 github 并在出现提示时信任主机 key 。然而,这不是正确的解决方案,因为一切都需要 100% 自动化(我正在使用 ansible 和 docker 构建 CI 管道)。另一个(笨拙的)解决方案是为正在运行的容器提供 ansible,但这会使事情变得困惑且难以维护。 Jenkins 容器甚至没有 ssh 守护进程,我不确定如何从其他主机 ssh 进入容器。第三种选择是使用我自己的 Dockerfile 扩展 jenkins 镜像,其中配置了 ssh,但这将是硬编码并将容器锁定到这个特定环境。

那么,使用 docker 管理(和自动化)与外部系统的连接的正确方法是什么?

最佳答案

要信任 github.com 主机,您可以在启动或构建容器时发出此命令:

ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
这会将 github 公钥添加到您已知的主机文件中。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值