使用Go 在遠端機器上執行指令
透過SSH 在遠端機器上執行指令可以透過「golang.org/ x/crypto /ssh”包。
要建立連接,請使用使用者、主機建立用戶端設定位址和驗證方法(公鑰或密碼)。
連線後,可以為每個指令執行建立一個會話。透過設定 session.Stdout 值,可以在緩衝區中擷取命令的輸出。
提供的範例函數,remoteRun(),示範如何在遠端電腦上執行特定指令並傳回結果:
func remoteRun(user string, addr string, privateKey string, cmd string) (string, error) { // Parse the private key and configure the SSH client 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), }, } // Connect to the remote machine client, err := ssh.Dial("tcp", net.JoinHostPort(addr, "22"), config) if err != nil { return "", err } // Create a new session session, err := client.NewSession() if err != nil { return "", err } defer session.Close() // Capture stdout for the command var b bytes.Buffer session.Stdout = &b // Execute the command and return the output err = session.Run(cmd) return b.String(), err }
透過利用這種方法,您可以輕鬆地從Go CLI 在遠端電腦上執行命令並處理其輸出。
以上是如何使用Go在遠端機器上執行指令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!