在Go CLI 中透過SSH 執行遠端指令
要使用Go CLI 在遠端電腦上執行指令,您需要使用「golang. org/x/crypto/ssh」包。
簡單指令執行
這是一個函數,示範了在遠端機器並回傳輸出:
import ( "bytes" "golang.org/x/crypto/ssh" "io" "net" ) func remoteRun(user string, addr string, privateKey string, cmd string) (string, error) { key, err := ssh.ParsePrivateKey([]byte(privateKey)) if err != nil { return "", err } config := &ssh.ClientConfig{ User: user, HostKeyCallback: ssh.InsecureIgnoreHostKey(), Auth: []ssh.AuthMethod{ ssh.PublicKeys(key), }, } client, err := ssh.Dial("tcp", net.JoinHostPort(addr, "22"), config) if err != nil { return "", err } session, err := client.NewSession() if err != nil { return "", err } defer session.Close() var b bytes.Buffer session.Stdout = &b err = session.Run(cmd) return b.String(), err }
用法:
output, err := remoteRun("root", "MY_IP", "PRIVATE_KEY", "ls") if err != nil { // handle error }
多跳執行
For一跳離開執行,您可以先使用提供的addr 和privateKey 簡單地建立與中間機器的SSH 連接。連線後,使用該會話中的 RemoteRun 函數在內部電腦上執行命令。
以上是如何在 Go CLI 中透過 SSH 運行遠端命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!