使用golang在远程服务器上执行shell命令

3
我有50多台Linux机器(RHEL)。我想从一个运行在中央机器上的go脚本上运行一些命令。我已经设置了从中央机器到所有远程机器的无密码ssh身份验证。虽然我也接受非ssh解决方案,但最好是安全的。
被运行的命令会随着时间而改变。我还希望在中央机器上运行的脚本中处理远程机器上运行的命令的输出和返回代码。
我只找到了这个ssh包,它仅支持密码身份验证方法,这还不够好。
还有其他选择吗?
2个回答

4

您可以使用这个包https://github.com/hypersleep/easyssh

例如,您可以远程调用ps ax

package main

import (
    "fmt"
    "github.com/hypersleep/easyssh"    
)

func main() {
    ssh := &easyssh.MakeConfig {
        User: "core",
        Server: "core",
        Key: "/.ssh/id_rsa",
        Port: "22",
    }

    response, err := ssh.Run("ps ax")
    if err != nil {
        panic("Can't run remote command: " + err.Error())
    } else {
        fmt.Println(response)
    }
}

3

所以这就是一个文档错误。 :) 目前仅支持“密码”身份验证方法。 - Kashyap

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接