x/build/cmd/coordinator, x/build/cmd/gomoteserver: ssh代理应该支持scp,

beq87vna  于 6个月前  发布在  Go
关注(0)|答案(3)|浏览(44)

截至 https://golang.org/cl/50750 ,构建协调器具有一个 ssh 服务器用于代理构建体。(这是 bug #19956 )
但目前尚无 scp 支持。
这是一个跟踪 bug 以找出解决方案。

zc0qhyus

zc0qhyus2#

这是我正在考虑的一个问题。在尝试想象它将如何工作时,出现了以下问题。
鉴于我们有 gomote put ,是否需要并会有所帮助?gomote put 不是已经实现了 scp 所能让你做的功能吗?或者我们是否知道特定的用例,这将使这个功能值得一试。
关于 sshscp 的观察。Gomote 目前允许用户通过运行 gomote ssh <instance> "ssh进入"一个buildlet,但它是通过创建一个ssh shell并让用户使用它来工作的。普通的 ssh 客户端不直接受支持。我认为同样的解决方案对 scp 不起作用,因为我们不想重新实现 scp 客户端所支持的所有复杂语法。

vawmfj5a

vawmfj5a3#

gomote putgomote gettar 繁琐且无法与现有工具(如 rsync)一起使用。
正常的 ssh 客户端不直接支持。
如果你手动运行它,它是可以的。gomote ssh 会输出你可以在自己电脑上运行的命令。
我认为修复这个 bug 所需的全部内容是在我们 ssh 服务器中响应“sftp”通道打开请求,并向后端打开一个新的“sftp”通道,然后用 io.Copy goroutines 将它们拼接在一起。

相关问题