我正在嘗試使用 SSH 連接golang.org/x/crypto/ssh,我有點驚訝我似乎無法找到如何使NewSession函數(shù)超時(我實際上沒有看到任何超時方法)。當我嘗試連接到有問題的服務(wù)器時,它會掛起很長時間。我寫了一些select與 a一起使用的東西,time.After但感覺就像一個黑客。我還沒有嘗試過的是將底層保留net.Conn在我的結(jié)構(gòu)中并繼續(xù)進行Conn.SetDeadline()調(diào)用。還沒有嘗試過這個,因為我不知道 crypto/ssh 庫是否覆蓋了這個或類似的東西。任何人都有使用此庫使死服務(wù)器超時的好方法?或者有人知道更好的圖書館嗎?
2 回答

侃侃爾雅
TA貢獻1801條經(jīng)驗 獲得超16個贊
在 上設(shè)置超時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)
當您調(diào)用時ssh.Dial,超時將傳遞給net.DialTimeout.
- 2 回答
- 0 關(guān)注
- 200 瀏覽
添加回答
舉報
0/150
提交
取消