2016-02-18 64 views
2

我使用此代碼https://gist.github.com/svett/b7f56afc966a6b6ac2fc作爲起點。使用crypto/ssh連接思科交換機

使用它,它指向一個cisco路由器讓我以下錯誤信息:

無法撥打:SSH:握手失敗:SSH:沒有共同的算法客戶端到服務器的密碼;客戶端提供:AES128-CTR AES192-CTR AES256-CTR [email protected] arcfour256 arcfour128],服務器提供:AES128-CBC 3DES-CBC AES192-CBC AES256-CBC]

做一些閱讀後,我瞭解到,我可以通過自定義配置讓AES128-CBC:

// CBC mode is insecure and so is not included in the default config. 
// (See http://www.isg.rhul.ac.uk/~kp/SandPfinal.pdf). If absolutely 
// needed, it's possible to specify a custom Config to enable it. 

於是我說:

HostKeyAlgorithms: []string{"aes128cbcID"}, 

我ssh.ClientConfig,我得到了一個不同的錯誤:

失敗撥號:ssh:handshake failed:ssh:沒有常用的主機密鑰算法;客戶端提供:[aes128cbcID],服務器提供:[ssh-rsa]

這基本上讓我覺得我指定HostKeyAlgorithm時,我需要指定客戶端到服務器密碼,但我找不到我的方式弄清楚如何做到這一點。

任何想法?

回答

4

你想要的是在客戶端的配置中設置Ciphers字段。這是在共同的ssh.Config結構,嵌入在ssh.ClientConfig

sshConfig.Ciphers = []string{"aes128-cbc"} 
+0

這樣做,謝謝! – Derek