duangongqiong6958 2016-06-07 12:52
浏览 177
已采纳

如何在golang CLI中的远程计算机上执行命令?

How do I execute a command on a remote machine in a golang CLI? I need to write a golang CLI that can SSH into a remote machine via a key and execute a shell command. Furthermore, I need to be able to do this one hop away. e.g. SSH into a machine (like a cloud bastion) and then SSH into another, internal, machine and execute a shell command.

I haven't (yet) found any examples for this.

  • 写回答

4条回答 默认 最新

  • doumengjing1500 2016-06-07 13:04
    关注

    Try with os/exec https://golang.org/pkg/os/exec/ to execute a 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)
        }
    }
    

    To jump over machines use the ProxyCommand directive in a ssh config file.

    Host remote_machine_name
      ProxyCommand ssh -q bastion nc remote_machine_ip 22
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题