0

我尝试连接存在于我们的 TFS 2018.3 之外的另一个域中的 Windows 机器。

我添加了“SSH”任务,并使用远程机器 IP、用户名和密码创建了新的 SSH 端点,没有私钥。我在 SSH 的远程机器访问中配置了这个用户名和密码。

在 SSH 任务中,我配置了一个简单的 shell 命令:ls.

TFS 代理成功连接机器,但失败并出现以下错误:

无法在远程系统上执行命令或 shell:无法执行进程。

完整日志:

2019-08-15T13:22:54.1491966Z Trying to setup SSH connection to ********@myserverinanotherdomain:22

2019-08-15T13:22:54.4085564Z Successfully connected.

2019-08-15T13:22:54.8120684Z tr -d '\015' <"./sshscript_1565875374136" > "./sshscript_1565875374136._unix"

2019-08-15T13:22:54.8121422Z Unable to execute command or shell on remote system: Failed to Execute process.

2019-08-15T13:22:54.8121745Z

2019-08-15T13:22:54.8180230Z ##[error]Command tr -d '\015' <"./sshscript_1565875374136" > "./sshscript_1565875374136._unix" exited with code 4294967295.

我想是因为它是一台 Windows 机器,我尝试执行一个 shell 脚本。例如,如果我将安装 Git bash,它会有所帮助吗?

SSH 任务是否只支持 Linux 机器?如果是,我如何连接另一个域中存在的机器?

4

1 回答 1

0

SSH 作为一种通信协议与操作系统无关。它不是特定于 Linux 的。但是在 windows 机器/构建代理上使用 SSH 任务似乎有一个限制。在这里看看这个类似的问题:Not able to run bash script from windows using vsts。

我还没有找到明确声明 SSh 任务在 Windows 机器上不支持的文档。但是我发现了一个也使用 SSH 的任务——Copy Files Over SSH 任务。并根据官方链接中的问答:

运行 Linux 以外的操作系统的目标机器是否支持此任务?

此任务适用于运行 Linux 的目标机器

  • 对于将文件复制到 macOS 机器,可以使用此任务,但不支持使用密码进行身份验证。
  • 要将文件复制到 Windows 机器,请考虑使用 Windows 机器文件复制。

而不是 SSH。您应该能够在构建服务器上和输入凭据时使用本地帐户。该帐户必须与其他域中的帐户具有相同的密码。在其他工作中,确保在构建代理上运行的构建帐户能够连接另一个域。

还要确保域之间存在信任关系。

于 2019-08-19T02:25:04.540 回答