如何使用带有 pem 文件的 Jenkins 管道对 ec2 服务器执行 ssh

How to do ssh to an ec2 server using Jenkins pipeline with pem file

我正在尝试通过 Jenkins 管道对 ec2 实例执行 SSH,使用本地系统上存在的 pem 文件,但我无法连接到 ec2 实例。

ssh 命令

ssh -i test.pem -o StrictHostKeyChecking=no ubuntu@ip -p22

我能够通过我的本地机器连接到 aws 实例。我 运行 仅在主节点上使用 jenkins 管道。 pem 文件的用户是否有任何问题,因为 pem 文件的用户名是 ubuntu 而不是 jenkins?

我可以通过在 jenkins 中安装 ssh 代理插件来解决这个问题。安装 ssh 代理插件后,我们需要在 Manage Jenkins -> Manage Credential 下配置服务器详细信息。在这里我们需要提供主机名、用户和密码,这将是您的 pem 文件。

在将 ssh 代理添加到您的 jenkins 管道脚本中时,可以按照以下方法进行操作。

sshagent(credentials : ['id_name_added_underManageCredential']){

   sh "ssh command"

}