登录
首页 >  Golang >  Go问答

如何在 golang CLI 中在远程机器上执行命令?

来源:Golang技术栈

时间:2023-05-01 13:41:44 221浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《如何在 golang CLI 中在远程机器上执行命令?》,就坚持看下去吧!文中内容包含golang等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

如何在 golang CLI 中在远程机器上执行命令?我需要编写一个 golang CLI,它可以通过密钥 SSH 到远程机器并执行 shell 命令。此外,我需要能够做到这一点。例如,通过 SSH 连接到一台机器(如云堡垒),然后通过 SSH 连接到另一台内部机器并执行 shell 命令。

我(还)没有找到任何例子。

正确答案

尝试使用 os/exec https://golang.org/pkg/os/exec/来执行 ssh

package main

import (
    "bytes"
    "log"
    "os/exec"
)

func main() {
    cmd := exec.Command("ssh", "remote-machine", "bash-command")
    var out bytes.Buffer
    cmd.Stdout = &out
    err := cmd.Run()
    if err != nil {
        log.Fatal(err)
    }
}

要跳过机器,请使用 ssh 配置文件中的 ProxyCommand 指令。

Host remote_machine_name
  ProxyCommand ssh -q bastion nc remote_machine_ip 22

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何在 golang CLI 中在远程机器上执行命令?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>