我试图从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私钥行的末尾有一个换行符,我确实添加了一个换行符并运行了管道,但最终失败了
1条答案
按热度按时间yuvru6vn1#
这可能是密钥格式的问题。EC2提供PEM格式的密钥,而ssh当前使用不同的格式(lengthy explanation here)。您可以在头文件中看到差异,PEM文件使用
ssh键
有很多方法可以来回转换密钥,但到目前为止最简单的方法是尝试生成一个新密钥:
然后尝试将该密钥导入到Jenkins(复制粘贴生成的
~/.ssh/id_rsa
内容)。如果成功,请登录到目标EC2主机并将~/.ssh/id_rsa.pub
到~/.ssh/authorized_keys
的行追加。