从https://golang.org/cl/50750 开始,构建协调器有一个 ssh 服务器来代理 buildlets。 (那是错误 #19956)
但是目前还没有 scp 支持。
这是一个跟踪错误来解决这个问题。
/cc @dmitshur
这是我正在研究的问题之一。 在试图设想它如何工作时,出现了以下问题。
鉴于我们有gomote put
,是否需要 scp 支持并且有帮助? gomote put
不是已经做了scp
会让你做的事情吗? 或者是否有我们知道的特定用例会使这变得值得。
关于ssh
与scp
一项观察。 Gomote 目前允许用户通过运行gomote ssh <instance>
“ssh 进入”一个 buildlet,但它的工作原理是创建一个 ssh shell 并让用户使用它。 不直接支持普通的ssh
客户端。 我认为相同的解决方案不适用于scp
,因为我们不想重新实现scp
客户端支持的所有复杂语法。
gomote put
和gomote gettar
很乏味,并且不适用于像rsync
这样的现有工具。
不直接支持普通的 ssh 客户端。
如果你手动运行它。 gomote ssh
回显您可以自己运行的命令。
修复这个错误所需的一切(我认为)就是在我们的 ssh 服务器中响应“sftp”通道打开请求,并打开一个新的“sftp”通道到后端,并将它们与副本 io.Copy goroutines 拼接在一起。
最有用的评论
gomote put
和gomote gettar
很乏味,并且不适用于像rsync
这样的现有工具。如果你手动运行它。
gomote ssh
回显您可以自己运行的命令。修复这个错误所需的一切(我认为)就是在我们的 ssh 服务器中响应“sftp”通道打开请求,并打开一个新的“sftp”通道到后端,并将它们与副本 io.Copy goroutines 拼接在一起。