我試圖製作一個簡單的包來將SSH命令發送到服務器。Golang方法Func中的無效接收器類型
我有以下代碼:
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()
// ...
}
我的問題是關於兩行func (conn Connection) SendCommand() ([]byte, error)
和session, err := (*ssh.Client)(conn).NewSession()
。
我不知道如何使用*ssh.Client
的方法從我的覆蓋Connection
類型。
據我所知,我需要做一些轉換,並使用ssh.Client(*conn).NewSession()
將工作,但它複製*ssh.Client
這似乎是不正確的方法的值。
使用我的自定義type Connection *ssh.Client
類型時,應該如何訪問*ssh.Client
的可用方法?
完美地工作。 '返回連接{康恩},nil'應改爲'返回&連接{康恩},無' – Acidic
@酸:謝謝,錯字固定。 – JimB