golang的ssh包如何使用
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要讲解了"golang的ssh包如何使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"golang的ssh包如何使用"吧!在使用gexpec
千家信息网最后更新 2025年01月24日golang的ssh包如何使用
这篇文章主要讲解了"golang的ssh包如何使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"golang的ssh包如何使用"吧!
在使用gexpect包发现很多问题之外,这里又尝试使用ssh user@127.0.0.1的思路进行用户切换。这里记录下具体的使用方法,遇到的ssh: must specify HostKeyCallback 问题的解法方法及最终使用过程中的问题。
一、ssh包crypto的安装
ssh使用的包为"golang.org/x/crypto/ssh",由于golang.org被墙了,所以这里使用github上的镜像版本,所以这里不能使用go get进行安装(不要使用go get,不要使用go get,不要使用go get)。使用方法为git clone https://github.com/golang/crypto.git后,放到$GOPATH/src/golang.org/x/目录下面即可。
二、ssh登录代码
package mainimport ("golang.org/x/crypto/ssh""log""os")func main() {ce := func(err error, msg string) {if err != nil {log.Fatalf("%s error: %v", msg, err)}}client, err := ssh.Dial("tcp", "127.0.0.1:22", &ssh.ClientConfig{User: "zabbix",Auth: []ssh.AuthMethod{ssh.Password("123456")},HostKeyCallback: ssh.InsecureIgnoreHostKey(),})ce(err, "dial")session, err := client.NewSession()ce(err, "new session")defer session.Close()session.Stdout = os.Stdoutsession.Stderr = os.Stderrsession.Stdin = os.Stdinmodes := ssh.TerminalModes{ssh.ECHO: 0,ssh.TTY_OP_ISPEED: 14400,ssh.TTY_OP_OSPEED: 14400,}err = session.RequestPty("linux", 32, 160, modes)ce(err, "request pty")err = session.Shell()ce(err, "start shell")err = session.Wait()ce(err, "return")}
代码执行后,发现可以正常切换到对应的用户,而且命令重复输出的问题也解决了,但是tab不能补全命令,ps auxf查看不能全屏的问题依然存在。
三、ssh: must specify HostKeyCallback报错解决
在执行上面的代码时可能会遇到ssh: must specify HostKeyCallback报错,出现该问题的原因是没有加如下行:
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
除了增加上面的代码能解决外,也可以增加如下代码解决:
//需要验证服务端,不做验证返回nil就可以,点击HostKeyCallback看源码就知道了HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {return nil},
感谢各位的阅读,以上就是"golang的ssh包如何使用"的内容了,经过本文的学习后,相信大家对golang的ssh包如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
问题
代码
方法
学习
验证
使用方法
内容
命令
思路
用户
面的
切换
原因
就是
情况
文章
更多
源码
版本
目录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
永定国税局网络安全
外企软件开发英语
2012网络安全年会
深圳市小软件开发公司排名
获取canvas数据库
市局召开网络安全专题培训会
ipad怎么老是连接不上服务器
超市销售界面与数据库的连接
天津云度互联网科技
天津销售软件开发
微信服务器会不会保存聊天记录
网络安全噩梦
全国最好的网络安全培训机构
数据库操作源代码自动生成系统
负责网络安全工作的部门
西瓜服务器新闻
不履行安网络安全保护义务的
路由器连vpn服务器
win10安装服务器卸载
网上招聘网络技术人员
网络安全领导小组网信委
关于网络安全的征文五年级
把软件开发外包的弊端
原神国际服服务器选哪个服务器
夜饮网络技术学院论坛照片
cdn怎么和云服务器绑定
把家里的电脑做服务器部署php
服务器mgmt口是干嘛的
银联商务 软件开发群面
海南运营软件开发公司