SSH 连接超时

我正在尝试使用 SSH 连接golang.org/x/crypto/ssh,我有点惊讶我似乎无法找到如何使NewSession函数超时(我实际上没有看到任何超时方法)。当我尝试连接到有问题的服务器时,它会挂起很长时间。我写了一些select与 a一起使用的东西,time.After但感觉就像一个黑客。我还没有尝试过的是将底层保留net.Conn在我的结构中并继续进行Conn.SetDeadline()调用。还没有尝试过这个,因为我不知道 crypto/ssh 库是否覆盖了这个或类似的东西。

任何人都有使用此库使死服务器超时的好方法?或者有人知道更好的图书馆吗?


蓝山帝景
浏览 178回答 2
2回答

侃侃尔雅

在 上设置超时ssh.ClientConfig。cfg := ssh.ClientConfig{    User: "root",    Auth: []ssh.AuthMethod{        ssh.PublicKeys(signer),    },    HostKeyCallback: ssh.FixedHostKey(hostKey),    Timeout:         15 * time.Second, // max time to establish connection}ssh.Dial("tcp", ip+":22", &cfg)当您调用时ssh.Dial,超时将传递给net.DialTimeout.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go