我通过在Ubuntu上使用jenkins / jenkins:lts和jenkins / ssh-slave映像来将jenkins主服务器和从属服务器作为docker容器运行。步骤如下:
ssh-keygen
)中运行docker exec -it container_id bash
,以生成ssh密钥我在stackoverflow上查看了与此问题相关的许多问题,但我陷于以下错误:
[02/08/19 20:31:06] [SSH]打开与###。##。#。#:22的SSH连接。 [02/08/19 20:31:06] [SSH] SSH主机密钥与“已知主机”文件中的密钥匹配。连接将被允许。 错误:服务器拒绝了詹金斯的1个私钥(credentialId:worker-ssh / method:publickey) [02/08/19 20:31:06] [SSH]身份验证失败。 身份验证失败。 [02/08/19 20:31:06]启动失败-清理连接 [02/08/19 20:31:06] [SSH]连接已关闭。
Jenkins中的从模板:
姓名:jenkins-worker
用法:尽可能使用此节点
启动方法:通过SSH启动代理
主机名:我的IP是从ifconfig中提取的
主机密钥验证策略:已知主机文件验证策略(.ssh / known_hosts包含提供的主机ip的条目)
用于ssh-slave的Dockerfile
#Docker version 18.09.1
FROM jenkins/ssh-slave
COPY /.ssh/id_rsa.pub /.ssh/authorized_keys
RUN chmod 744 /.ssh/authorized_keys