为了账号安全,请及时绑定邮箱和手机立即绑定

SSH 连接超时

SSH 连接超时

Go
蓝山帝景 2021-10-25 16:14:19
我正在尝试使用 SSH 连接golang.org/x/crypto/ssh,我有点惊讶我似乎无法找到如何使NewSession函数超时(我实际上没有看到任何超时方法)。当我尝试连接到有问题的服务器时,它会挂起很长时间。我写了一些select与 a一起使用的东西,time.After但感觉就像一个黑客。我还没有尝试过的是将底层保留net.Conn在我的结构中并继续进行Conn.SetDeadline()调用。还没有尝试过这个,因为我不知道 crypto/ssh 库是否覆盖了这个或类似的东西。任何人都有使用此库使死服务器超时的好方法?或者有人知道更好的图书馆吗?
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

在 上设置超时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.


查看完整回答
反对 回复 2021-10-25
  • 2 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信