登录
首页 >  Golang >  Go问答

如何使用Golang执行SSH操作

来源:stackoverflow

时间:2024-03-12 23:45:25 421浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《如何使用Golang执行SSH操作》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

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

func main() {
    cmd := exec.Command("ssh", "[email protected]", "-p", "2222")
    err := cmd.Run()
    if err != nil {
            panic(err)
    }
}

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


解决方案


我找到了另一种方法来解决我的问题,使用:

binary, lookerr := exec.lookpath("ssh")
if lookerr != nil {
    panic(lookerr)
}
syscall.exec(binary, []string{"ssh", "[email protected]", "-p", "2222"}, os.environ())

这将关闭该程序的进程并在另一个进程上启动 ssh。 感谢您帮助我!

您应该传入 stdinstdoutstderr

package main

import (
    "os"
    "os/exec"
)

func main() {
    cmd := exec.Command("ssh", "[email protected]", "-p", "2222")
    cmd.Stdin = os.Stdin
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

    err := cmd.Run()
    if err != nil {
        panic(err)
    }
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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