jenkins管道失败-错误:运行ssh-add失败;显示加载密钥错误-格式无效

mjqavswn  于 2023-04-05  发布在  Jenkins
关注(0)|答案(1)|浏览(222)

我试图从jenkins ssh到ec2,我已经用从aws下载的密钥在jenkins global中设置了凭据i,e“something.pem”。我复制了内容并粘贴。不知道为什么jenkins无法从私钥读取

`SSH_AGENT_PID=2612
Running ssh-add (command line suppressed)
Error loading key "/var/jenkins_home/workspace/ultibranch-pipeline_jenkins-           
jobs@tmp/private_key_8683577244018302829.key": invalid format
[Pipeline] // sshagent
[Pipeline] End of Pipeline
ERROR: Failed to run ssh-add
Finished: FAILURE`

我寻找解决方案,但大多数人说这是因为在RSA私钥行的末尾有一个换行符,我确实添加了一个换行符并运行了管道,但最终失败了

yuvru6vn

yuvru6vn1#

这可能是密钥格式的问题。EC2提供PEM格式的密钥,而ssh当前使用不同的格式(lengthy explanation here)。您可以在头文件中看到差异,PEM文件使用

-----BEGIN RSA PRIVATE KEY-----

ssh键

-----BEGIN OPENSSH PRIVATE KEY-----

有很多方法可以来回转换密钥,但到目前为止最简单的方法是尝试生成一个新密钥:

ssh-keygen -b 2048 -t rsa

然后尝试将该密钥导入到Jenkins(复制粘贴生成的~/.ssh/id_rsa内容)。如果成功,请登录到目标EC2主机并将~/.ssh/id_rsa.pub~/.ssh/authorized_keys的行追加。

相关问题