Azure DevOps CD 管道上的 SSH 超时错误
SSH timeout error on Azure DevOps CD pipeline
我在尝试部署到 AWS 上托管的 VM 实例时遇到超时错误。手动我可以使用
登录
ssh -i myKeyFile.pem myuser@IP
访问远程机器后,我可以执行一些 docker 命令,一切正常。但是现在我需要在 CD 管道上实现自动化,这是我收到以下错误的地方:
2020-06-02T21:37:12.6877276Z Trying to establish an SSH connection to ***@IP:port
2020-06-02T21:38:52.4629461Z ##[error]Failed to connect to remote machine. Verify the SSH service connection details. Error: Error: Timed out while waiting for handshake.
2020-06-02T21:38:52.4685976Z ##[section]Finishing: Run shell commands on remote machine
我建立 SSH 连接的步骤是:
- 我在 Azure DevOps 的项目设置上创建了一个 SSH 服务连接
- 我创建了 CD 管道
- 我使用以下参数添加了一个 SSH 任务
当我手动触发它以测试它是否工作时,发布开始工作正常,但在 1:43 分钟后或多或少是我收到错误的时间:
然后,当我查看日志时,它是我在开头粘贴的相同错误:
[error]Failed to connect to remote machine. Verify the SSH service connection details. Error: Error: Timed out while waiting for handshake
我已将握手超时设置从默认值 (20000) 增加到 90000,但没有成功。
有人遇到过这个问题吗?
似乎 Azure DevOps 的默认代理池存在持续错误。很多人都报告过这个问题,Azure DevOps 团队在写这个 post 的时候正在处理它(我找不到 post 那里有所有细节。我稍后会添加这个上)。
解决方法是
- 创建自托管代理。
- 创建后,您需要使用新的自托管代理重新创建 CD 管道。
- 其余的 SSH 任务配置取决于您的需要。但是如果你想测试 SSH 连接是否有效,只需打印一些东西:
echo '我已连接'
- 在此之后,您的 CD 管道应该可以正常工作。
有关如何创建 Self-Hosted Agent on Windows 的更多详细信息。还有 Linux 和 Mac 的链接。
我在 Azure 中的 VM 中遇到了类似的问题。事实证明,我已将安全组设置为仅允许从我的本地网络和 Azure Dev-Ops 代理显然 运行 在 Microsoft 网络中使用 SSH,并且来自不同的 IP 地址范围。解决方案是对所有源 IP 地址开放 SSH。您可以获得代理使用的 IP 地址范围列表 Dev-Ops,但它们似乎每周都在变化,这不是很有帮助。
我在尝试部署到 AWS 上托管的 VM 实例时遇到超时错误。手动我可以使用
登录ssh -i myKeyFile.pem myuser@IP
访问远程机器后,我可以执行一些 docker 命令,一切正常。但是现在我需要在 CD 管道上实现自动化,这是我收到以下错误的地方:
2020-06-02T21:37:12.6877276Z Trying to establish an SSH connection to ***@IP:port
2020-06-02T21:38:52.4629461Z ##[error]Failed to connect to remote machine. Verify the SSH service connection details. Error: Error: Timed out while waiting for handshake.
2020-06-02T21:38:52.4685976Z ##[section]Finishing: Run shell commands on remote machine
我建立 SSH 连接的步骤是:
- 我在 Azure DevOps 的项目设置上创建了一个 SSH 服务连接
- 我创建了 CD 管道
- 我使用以下参数添加了一个 SSH 任务
当我手动触发它以测试它是否工作时,发布开始工作正常,但在 1:43 分钟后或多或少是我收到错误的时间:
然后,当我查看日志时,它是我在开头粘贴的相同错误:
[error]Failed to connect to remote machine. Verify the SSH service connection details. Error: Error: Timed out while waiting for handshake
我已将握手超时设置从默认值 (20000) 增加到 90000,但没有成功。
有人遇到过这个问题吗?
似乎 Azure DevOps 的默认代理池存在持续错误。很多人都报告过这个问题,Azure DevOps 团队在写这个 post 的时候正在处理它(我找不到 post 那里有所有细节。我稍后会添加这个上)。
解决方法是
- 创建自托管代理。
- 创建后,您需要使用新的自托管代理重新创建 CD 管道。
- 其余的 SSH 任务配置取决于您的需要。但是如果你想测试 SSH 连接是否有效,只需打印一些东西:
echo '我已连接'
- 在此之后,您的 CD 管道应该可以正常工作。
有关如何创建 Self-Hosted Agent on Windows 的更多详细信息。还有 Linux 和 Mac 的链接。
我在 Azure 中的 VM 中遇到了类似的问题。事实证明,我已将安全组设置为仅允许从我的本地网络和 Azure Dev-Ops 代理显然 运行 在 Microsoft 网络中使用 SSH,并且来自不同的 IP 地址范围。解决方案是对所有源 IP 地址开放 SSH。您可以获得代理使用的 IP 地址范围列表 Dev-Ops,但它们似乎每周都在变化,这不是很有帮助。