使用crypto / ssh连接到Cisco交换机

时间:2016-02-18 22:15:10

标签: go ssh

我使用此代码https://gist.github.com/svett/b7f56afc966a6b6ac2fc作为起点。

使用它并将其指向cisco路由器会收到以下错误消息:

拨号失败:ssh:握手失败:ssh:客户端到服务器密码没有通用算法;客户提供:[aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com 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:握手失败:ssh:主机密钥没有通用算法;客户提供:[aes128cbcID],服务器提供:[ssh-rsa]

这基本上让我觉得我在指定客户端到服务器密码的时候指定了HostKeyAlgorithm,但我找不到足够的方法来弄清楚如何这样做。

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

您想要的是在客户端的配置中设置Ciphers字段。它位于ssh.Config

中嵌入的公共ssh.ClientConfig结构中
sshConfig.Ciphers = []string{"aes128-cbc"}