Git 主机密钥验证在Jenkins中失败,在Docker内部工作
我正在为构建系统集成Jenkins,Jenkins安装在我的本地机器上。构建正在docker容器中运行,我需要签出容器中的db迁移repo。对于SSH身份验证,我正在执行一个shell脚本,如下所示:Git 主机密钥验证在Jenkins中失败,在Docker内部工作,git,shell,docker,jenkins,ssh,Git,Shell,Docker,Jenkins,Ssh,我正在为构建系统集成Jenkins,Jenkins安装在我的本地机器上。构建正在docker容器中运行,我需要签出容器中的db迁移repo。对于SSH身份验证,我正在执行一个shell脚本,如下所示: mkdir -p ~/.ssh touch ~/.ssh/id_rsa echo "-----BEGIN RSA PRIVATE KEY----- KEY HERE -----END RSA PRIVATE KEY-----" > ~/.ssh/id_rsa chmod 600 ~/.s
mkdir -p ~/.ssh
touch ~/.ssh/id_rsa
echo "-----BEGIN RSA PRIVATE KEY-----
KEY HERE
-----END RSA PRIVATE KEY-----" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
运行此命令后,我可以在Docker容器中克隆代码,但不能从管道或执行签出的另一个shell脚本中克隆代码。它返回错误
警告:已将IP地址“192.30.253.113”的RSA主机密钥永久添加到已知主机列表中。权限被拒绝(公钥)。
致命:无法从远程存储库读取。
请确保您具有正确的访问权限,并且存储库存在
钥匙已正确添加,并在docker内部工作。如何从shell脚本中执行此操作?可能容器中的用户是
root
,而没有docker,则是jenkins
?您正在尝试以root用户身份登录吗?您是否为ssh
命令指定了用户名?为什么不将ssh密钥添加到Jenkins凭据中?然后,您可以在管道中将其与和凭据一起使用(
?:)@StephenKing是,容器中的用户root
。我不是在做SSH
,我只是在做git克隆