golang的ssh包如何使用
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要讲解了"golang的ssh包如何使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"golang的ssh包如何使用"吧!在使用gexpec
千家信息网最后更新 2026年11月04日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安全错误
数据库的锁怎样保障安全
有格互联网科技
互联网科技图片
广东万易互联网科技有限公司惠州分公司
山东特亿宝互联网科技有限公司
互联网科技集团
奇酷互联网科技公司
迪茉互联网科技
新兴科技互联网创新大赛颁奖典礼
恒生互联网科技业指数调整周期
山东有哪些互联网科技公司
小米互联网科技园入驻
启辰互联网科技
领航科技大厦互联网公司
富国互联网金融科技混合基金
浙南科技城互联网大厦招聘
扫呗互联网科技有限公司
世界互联网科技成果奖
容联科技互联网电商
科技互联网公司两年变化
互联网科技对化妆品行业
新华互联网科技
蓝思科技飞鸽互联网
互联网科技公司的优势
长亮科技互联网金融
居家互联网科技有限公司
互联网科技实习生岗位职责
阿里互联网科技企业
工业互联网科技创业
每日互联网科技新闻
科技发展第三阶段互联网时代