重用来自OpenSSH客户端创建的套接字的连接

时间:2019-03-18 16:55:05

标签: go ssh

OpenSSH客户端具有称为“ ControlMaster”的功能,该功能允许通过单个网络连接重用多个ssh会话之间的连接。

我想知道是否可以使用Golang的x/crypto/ssh包重用来自OpenSSH客户端使用以下命令创建的套接字的连接:

ssh -M -f -N -o ControlPath=$HOME/.ssh/shared.sock myUsername@targetServerName

是否可以通过此$HOME/.ssh/shared.sock套接字创建Golang客户端?

我们通常使用Dial函数来创建客户端。

func Dial(network, addr string, config *ClientConfig) (*Client, error)

但是我看到似乎还有NewClient函数似乎是用于重用现有连接的。

func NewClient(c Conn, chans <-chan NewChannel, reqs <-chan *Request) *Client

我很难理解如何正确地实例化Conn和两个通道。

也许根本不可行吗?

目标是能够实现OpenSSH客户端的一种包装,并在调用实际的OpenSSH客户端进程之前/之后使用Golang触发命令。最好避免重新实现目标主机/端口逻辑和身份验证。

0 个答案:

没有答案