使用 golang CLI 在远程计算机上执行命令
要在远程计算机上执行命令,Golang CLI 可以利用“golang.org” /x/crypto/ssh”包。这是您的查询的解决方案:
函数remoteRun演示了如何在远程计算机上执行单个命令并检索其输出:
func remoteRun(user string, addr string, privateKey string, cmd string) (string, error) { // Read or retrieve the private key key, err := ssh.ParsePrivateKey([]byte(privateKey)) if err != nil { return "", err } // Configure authentication config := &ssh.ClientConfig{ User: user, HostKeyCallback: ssh.InsecureIgnoreHostKey(), // Allow any host Auth: []ssh.AuthMethod{ ssh.PublicKeys(key), }, } // Establish a connection client, err := ssh.Dial("tcp", net.JoinHostPort(addr, "22"), config) if err != nil { return "", err } // Create a session session, err := client.NewSession() if err != nil { return "", err } defer session.Close() // Collect the command's output var b bytes.Buffer session.Stdout = &b // Execute the command err = session.Run(cmd) if err != nil { return "", err } return b.String(), nil }
此函数接受用户,地址,私有键和命令作为输入,并以字符串形式返回命令的输出。您可以指定用户、地址和私钥,以授予对您希望执行命令的计算机的访问权限。
以上是如何使用 Golang CLI 在远程机器上执行命令?的详细内容。更多信息请关注PHP中文网其他相关文章!