Amazon ec2 Azure DevOps CD管道上的SSH超时错误

Amazon ec2 Azure DevOps CD管道上的SSH超时错误,amazon-ec2,ssh,azure-devops,azure-pipelines,azure-pipelines-build-task,Amazon Ec2,Ssh,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,我在尝试部署到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 ##[er

我在尝试部署到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团队在撰写此文章时正在对此进行研究(我找不到包含所有详细信息的文章。我稍后将添加此内容)

    解决办法是

  • 创建自托管代理
  • 创建后,您需要使用新的自托管代理重新创建CD管道
  • SSH任务配置的其余部分取决于您的需要。但是,如果您想测试SSH连接是否工作,只需打印一些内容:
  • 回音“我接通了”

  • 在此之后,您的CD管道应该可以正常工作

  • 有关如何创建的详细信息。还有Linux和Mac的链接。

    我在Azure中遇到了类似的VM问题。事实证明,我已将安全组设置为仅允许SSH从本地网络进入,Azure Dev Ops代理显然运行在Microsoft网络中,并且来自不同的IP地址范围。解决方案是向所有源IP地址开放SSH。您可以获得开发人员操作代理使用的IP地址范围列表,但它们似乎每周都在更改,这并没有多大帮助


    请参见

    如何配置服务连接?请检查是否可以使用密码登录远程服务器。只有通过密码成功登录服务器,我们的服务连接才能正常工作。嗨,迈克,这个问题有什么更新吗?@LanceLi MSFT,我刚刚补充了我关于如何解决这个问题的发现。请看下面的答案。谢谢您在这里分享您的解决方案,好吗?因此,它将有助于其他成员谁得到同样的问题,找到解决办法容易。祝你今天愉快:)