首页 >后端开发 >Golang >如何使用 Golang CLI 在远程机器上执行命令?

如何使用 Golang CLI 在远程机器上执行命令?

DDD
DDD原创
2024-11-07 19:12:02884浏览

How to Execute Commands on Remote Machines with a Golang CLI?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn