我正在尝试创建一个简单的包来将SSH命令发送到服务器.
我有以下代码:
type Connection *ssh.Client
func Connect(addr, user, password string) (conn Connection, err error) {
sshConfig := &ssh.ClientConfig{
User: user,
Auth: []ssh.AuthMethod{
ssh.Password(password),
},
HostKeyCallback: ssh.HostKeyCallback(func(hostname string, remote net.Addr, key ssh.PublicKey) error { return nil }),
}
conn, err = ssh.Dial("tcp", addr, sshConfig)
return
}
func (conn Connection) SendCommand() ([]byte, error) {
session, err := (*ssh.Client)(conn).NewSession()
// ...
}
Run Code Online (Sandbox Code Playgroud)
我的问题是关于两行func (conn Connection) SendCommand() ([]byte, error)和session, err := (*ssh.Client)(conn).NewSession().
我无法弄清楚如何使用*ssh.Client我的覆盖Connection类型可用的方法.
我知道我需要进行一些转换,并且使用ssh.Client(*conn).NewSession()可以工作,但它复制的值 …