在 Golang CLI 中使用 SSH 执行远程命令
在远程计算机上执行命令是自动化系统管理时的一项常见任务。在 Golang 中,“golang.org/x/crypto/ssh”包提供了一种建立 SSH 连接并远程运行命令的便捷方法。
要在远程计算机上执行命令,请按照以下步骤操作:
建立 SSH 连接:
使用ssh.Dial 函数建立到远程机器的 SSH 连接。您需要提供以下信息:
这是一个示例函数,演示如何运行远程命令并返回其输出:
import ( "bytes" "net" "golang.org/x/crypto/ssh" ) func remoteRun(user, addr, privateKey, cmd string) (string, error) { key, err := ssh.ParsePrivateKey([]byte(privateKey)) if err != nil { return "", err } config := &ssh.ClientConfig{ User: user, HostKeyCallback: ssh.InsecureIgnoreHostKey(), Auth: []ssh.AuthMethod{ ssh.PublicKeys(key), }, } client, err := ssh.Dial("tcp", net.JoinHostPort(addr, "22"), config) if err != nil { return "", err } session, err := client.NewSession() if err != nil { return "", err } defer session.Close() var b bytes.Buffer // capture output session.Stdout = &b // get output err = session.Run(cmd) return b.String(), err }
此函数可用于在远程计算机上执行命令,提供了一种通过 Golang CLI 脚本自动执行系统管理任务的便捷方法。
以上是如何在 Golang CLI 中使用 SSH 执行远程命令?的详细内容。更多信息请关注PHP中文网其他相关文章!