【发布时间】:2021-03-08 23:12:00
【问题描述】:
我正在学习使用 Jenkins 在 AWS EC2 服务器上部署 .Net 5.0 应用程序。这是我第一次将 Linux 服务器和 Jenkins 用于 .Net(我是一个终生使用 Windows 的人),我在尝试通过 SSH 将我的工件发布到 Web 服务器时遇到了错误。
我的设置:
Jenkins 服务器是 AWS EC2 Linux AMI 服务器。 Web Server 也是 AWS EC2 LInux AMI 服务器。
我的 Jenkins 已正确安装并正常工作。我能够毫无问题地构建和运行单元测试用例。 对于部署,我使用的是“通过 SSH 发布”插件,并且我已按照此处https://plugins.jenkins.io/publish-over-ssh/ 中提到的所有步骤配置此插件。
但是,当尝试“测试配置”时,我收到以下错误,
连接或更改目录失败
jenkins.plugins.publish_over.BapPublisherException:无法连接和初始化 SSH 连接。消息:[无法连接配置 [WebServer] 的会话。消息[验证失败]]
我做了一个从 Jenkins 服务器到 Web 服务器的 ping 测试,它是成功的。 我在“通过 SSH 发布”的“密钥”部分使用 .pem 密钥。此密钥与我用于通过 SSH 连接到 Web 服务器的密钥相同。
以下链接建议了许多不同的解决方案,但在我的情况下没有一个有效。
Jenkins Publish over ssh authentification failed with private key
我正在查看描述相同问题的以下链接,
Jenkins publish over SSH failed to change to remote directory
但是,就我而言,我将“远程目录”保留为空。我不知道我是否必须在这里指定任何目录。无论如何,我尝试在用户 ec2-user 的主目录下创建一个新目录作为“/home/ec2-user/publish”,然后将此路径用作远程目录,但它仍然不起作用。
我在 Jenkins 中的设置屏幕截图:
【问题讨论】:
标签: linux amazon-web-services jenkins amazon-ec2 ssh