在golang中执行ssh

Hug*_*anc 1 ssh go

我正在寻找一种从 golang 程序在终端中启动 ssh 的方法。

func main() {
    cmd := exec.Command("ssh", "user@192.168.0.17", "-p", "2222")
    err := cmd.Run()
    if err != nil {
            panic(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

这非常有效,直到我输入正确的密码,然后程序退出。我想当经过身份验证时,会启动另一个 ssh 脚本,但我不知道如何解决这个问题。我搜索了一些有关它的信息,但我发现的只是如何在 go 中创建 ssh 会话,如果可能的话,我想避免这种情况。

Sha*_*ing 6

您应该传入stdinstdoutstderr

package main

import (
    "os"
    "os/exec"
)

func main() {
    cmd := exec.Command("ssh", "user@192.168.0.17", "-p", "2222")
    cmd.Stdin = os.Stdin
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

    err := cmd.Run()
    if err != nil {
        panic(err)
    }
}
Run Code Online (Sandbox Code Playgroud)