首頁 > 後端開發 > Golang > 如何使用 Golang CLI 在遠端機器上執行命令?

如何使用 Golang CLI 在遠端機器上執行命令?

DDD
發布: 2024-11-07 19:12:02
原創
864 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板