Git 主机密钥验证在Jenkins中失败,在Docker内部工作

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

我正在为构建系统集成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 ~/.ssh/id_rsa
运行此命令后,我可以在Docker容器中克隆代码,但不能从管道或执行签出的另一个shell脚本中克隆代码。它返回错误

警告:已将IP地址“192.30.253.113”的RSA主机密钥永久添加到已知主机列表中。
权限被拒绝(公钥)。
致命:无法从远程存储库读取。

请确保您具有正确的访问权限,并且存储库存在


钥匙已正确添加,并在docker内部工作。如何从shell脚本中执行此操作?

可能容器中的用户是
root
,而没有docker,则是
jenkins
?您正在尝试以root用户身份登录吗?您是否为
ssh
命令指定了用户名?为什么不将ssh密钥添加到Jenkins凭据中?然后,您可以在管道中将其与
和凭据一起使用(
?:)@StephenKing是,容器中的用户
root
。我不是在做
SSH
,我只是在做
git克隆