go x/crypto/ssh: 解码disconnectMsg字段的Language类型时出错,

bvhaajcl  于 5个月前  发布在  Go
关注(0)|答案(1)|浏览(43)

你正在使用哪个版本的Go(go version)?

$ go version
go version go1.15.6 linux/arm64

这个问题在最新版本中是否会重现?

我正在使用

golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 [v0.0.0-20201203163018-be400aefbc4c]

你正在使用什么操作系统和处理器架构(go env)?

go env 输出

$ go env
GO111MODULE=""
GOARCH="arm64"
GOBIN=""
GOCACHE="/home/ubuntu/.cache/go-build"
GOENV="/home/ubuntu/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/ubuntu/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/ubuntu/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_arm64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/ubuntu/ssh-honeypot/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build038631070=/tmp/go-build -gno-record-gcc-switches"

你做了什么?

我正在编写一个SSH蜜罐。当接收连接时,有时由于解组错误而无法接受连接。我不确定这是否是一个可以解决的问题。
如果我必须猜测,可能断开消息结构的语言字段中存在不受支持的字符。
不幸的是,没有简单的方法来复现。我只是运行我的蜜罐,偶尔会出现这些错误。

你期望看到什么?

我期望看到成功的认证。

你看到了什么?

在我调用ssh.NewServerConn之后,我在日志中收到了这些消息:

[DBG] SSH password attempt from 142.93.52.3:48066.
[DBG] Username: root
[DBG] Password: Password
[DBG] Could not initiate SSH handshake: ssh: unmarshal error for field Language of type disconnectMsg

相关问题