You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Pipeline中CopyFilesOverSSH任务认证失败求助

问题描述

我在Azure DevOps中配置了SSH任务和CopyFilesOverSSH任务,使用同一个SSH服务连接backend:

- task: SSH@0
  inputs:
    sshEndpoint: 'backend'
    runOptions: 'commands'
    commands: 'do something'
    readyTimeout: '20000'
  
- task: CopyFilesOverSSH@0
  inputs:
    sshEndpoint: 'backend'
    sourceFolder: '$(System.DefaultWorkingDirectory)'
    contents: 'api-core'
    targetFolder: '/opt/api'
    readyTimeout: '20000'

SSH任务可正常运行,但CopyFilesOverSSH任务报错:

Setting up SSH service connection to remote host xxx.xxx.xxx.xxx. ##[debug]task result: Failed ##[error]Error: Failed to connect to remote machine. Verify the SSH service connection details. Failed to connect to remote machine.

我在其他项目用完全相同的YAML配置可正常运行,本地也能通过.pem文件进行SFTP和SSH连接,完全搞不懂复制文件时为何出现认证错误。

Azure DevOps错误截图


排查解决步骤

  • 检查服务器SFTP子系统配置:登录目标服务器查看/etc/ssh/sshd_config,确认Subsystem sftp /usr/lib/openssh/sftp-server(部分系统路径为/usr/libexec/openssh/sftp-server)未被注释,若已注释则取消并重启sshd服务(systemctl restart sshd)。
  • 验证目标文件夹权限:确保SSH服务连接使用的用户对/opt/api拥有读写权限,执行ls -ld /opt/api查看权限,必要时用chown <用户名>:<组名> /opt/api或chmod 755 /opt/api调整。
  • 核对服务连接细节:即使YAML配置一致,也要确认两个项目的backend服务连接参数完全相同(包括用户名、密钥、服务器端口),避免服务连接被私下修改。
  • 开启详细日志:在CopyFilesOverSSH任务中添加verbose: true输入参数,查看更具体的错误日志,定位是认证失败还是SFTP会话建立异常。
  • 本地SFTP上传测试:用本地的.pem文件通过SFTP客户端尝试上传文件到/opt/api,如果本地也失败,说明问题出在服务器端的SFTP配置或权限。

内容的提问来源于stack exchange,提问作者i773

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:52:44