Go Lang exec/spawn 一个 ssh 会话

use*_*584 3 ssh fork go lang

我正在尝试制定分叉/启动 ssh 终端会话的机制,即如果我执行这个程序,我想登录到远程服务器(我的密钥在服务器上)。

现在它只是执行但没有任何反应。

package main

import (
 "os/exec"   
 "os"
)

func main() {
  cmd := exec.Command("ssh","root@SERVER-IP")
  cmd.Stdout = os.Stdout
  //cmd.Stderr = os.Stderr
  cmd.Run()

}
Run Code Online (Sandbox Code Playgroud)

tik*_*ike 5

cmd.Run等待命令完成。您的 ssh 会话(通常)不应在没有用户交互的情况下退出。因此您的程序会阻塞,因为它会等待ssh进程完成。

你可能想要

  • 还重定向标准输入,以便您可以与 ssh 会话进行交互
  • 执行ssh me@server somecommand。在最后一种形式中,一个特定的命令被执行并且这个命令的输出被重定向。
  • 看看ssh包