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

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

DDD
发布: 2024-11-07 19:12:02
原创
862 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板