登录
首页 >  Golang >  Go问答

正确处理Golang中的SSH会话输入

来源:stackoverflow

时间:2024-02-28 20:45:20 410浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《正确处理Golang中的SSH会话输入》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我正在编写一个使用 go 程序更改 root 密码的程序。代码片段如下:

package main

import (
    "fmt"
    "github.com/pkg/sftp"
    "golang.org/x/crypto/ssh"
    "log"
    "os"
    "time"
)

type serverconfig struct {
    sshhost string
    sshuser string
    sshpassword string
    sshtype string
    sshport int
}

func main() {
    server := serverconfig{
        sshhost: "172.28.128.3",
        sshuser: "vagrant",
        sshpassword: "*****",
        sshport: 22,
        sshtype: "password",
    }
    sshclient := sshconnet(server)
    defer sshclient.close()
    session,err := sshclient.newsession()
    if err != nil {
        log.fatal("creat ssh session fail",err)
    }
    defer session.close()
    session.stdout = os.stdout
    session.stderr = os.stdout
    session.stdin = os.stdin
    err = session.run("su -; whoami")
    if err != nil {
        log.println(err)
    }

即使输入正确的 root 密码后,仍然会提示我身份验证失败。有人可以帮助我吗?非常感谢

go run main.go
Password: ******
su: Authentication failure
vagrant

正确答案


首先检查这是否是由于您的远程服务器设置所致。

参见for instance this,如果所述远程服务器是Ubuntu服务器:

终于介绍完啦!小伙伴们,这篇关于《正确处理Golang中的SSH会话输入》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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