当前位置: 首页 > 面试题库 >

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

卢阳成
2023-03-14
问题内容

如何在golang CLI中的远程计算机上执行命令?我需要编写一个golang
CLI,该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


 类似资料:
  • 问题内容: 我正在Ubuntu上用python编写程序,以在RaspberryPi上执行命令,并与网络连接。 有人可以指导我该怎么做吗? 问题答案: 当然,有几种方法可以做到! 假设您在主机上安装了Raspberry Pi,并且用户名是。 这是运行命令的默认Python库。 您可以使其运行并在远程服务器上执行所需的任何操作。 scrat已在他的回答中提及。如果您不想使用任何第三方库,则绝对应该这样

  • 问题内容: 我试图连接到主机,然后使用“ su-john”更改用户,然后以john身份执行命令。仅使用JSch是否有可能? 问题是在创建会话并打开通道并执行上述命令后,它应该要求输入密码,但没有任何反应。 这是我连接到远程计算机的方式: 然后我通过如下方法执行命令: 当我更改用户时,是否必须创建另一个频道,或者如何使其工作? 因为如果我用 它只执行“ su”命令,但没有完成用户的更改,之后执行“

  • 我实际上想要的是windows环境中等效的非ssh连接。根据要求,我的控制器机器可以使用某种实用程序/协议(如ssh或telnet或rpc或tpc)使用用户名密码连接到远程机器,并且使用此会话,我可以在远程机器上传输文件或执行命令。此连接执行必须在远程计算机不进行任何干预的情况下完成,即,我不需要在远程计算机上安装任何模块或安装任何实用程序,也不需要运行任何脚本。 我的控制器和远程环境都是窗口。

  • 我们有一个定制的部署应用程序,就像java中编写的jenkins一样,我们将使用它将新代码推送到测试服务器中。我们的测试自动化在另一台远程机器上运行。现在它由windows<--plhd--上的一个计划任务运行0/>任务将触发一个bat文件,该文件将执行TestNg脚本。 如何从自定义部署应用程序调用用于运行TestNg脚本的bat文件? 如何使用Java或node js存档

  • 问题内容: 我有两个问题: 有多台远程linux机器,我需要编写一个shell脚本,它将在每台机器上执行相同的命令集。(包括一些sudo操作)。如何使用Shell脚本来完成? 切换到远程计算机时,提示输入RSA指纹认证时如何处理。 远程机器是在运行中创建的VM,我只有它们的IP。因此,我无法事先在这些计算机中放置脚本文件并从我的计算机中执行它们。 问题答案: 有多台远程linux机器,我需要编写一

  • 问题内容: 本地计算机(PC)上用户界面右上方的下拉菜单: 问题答案: IPython use kernel是一个文件,其中描述了如何启动内核。如果创建自己的内核(远程或其他),则程序运行远程内核并本地绑定到笔记本的端口将由您决定。