思科,通过 SCP 更新引导代码失败“未找到匹配的密钥交换方法。”

思科,通过 SCP 更新引导代码失败“未找到匹配的密钥交换方法。”

尝试通过 SCP 更新 CISCO SF200-24 启动代码,但我得到的只是

fatal: Unable to negotiate with <IP> port 5939: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 [preauth]

但是我的 SSH

$ ssh -V
OpenSSH_7.2p2, OpenSSL 1.0.2h  3 May 2016

确实为他们提供了 AFAICS:

$ ssh -Q kex
diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
[email protected]

这让我抓狂,特别是当你每次尝试时都必须输入所有数据(SCP 主机的 IP、文件名等,一遍又一遍)那么问题出在哪里呢?

答案1

密钥交换方法

diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

在最新版本的 OpenSSH 中已经过时,并且默认不提供。但您可以在命令行或在中指定ssh_config以允许连接到旧服务器(思科)。

第一种方法是通过命令行:

scp  -O KexAlgorithms=+diffie-hellman-group-exchange-sha1 host:file /local/path/

或更好~/.ssh/config

Host your.cisco.host (or IP)
  KexAlgorithms +diffie-hellman-group-exchange-sha1

然后你就可以使用简单的连接

scp  your.cisco.host:file /local/path/

编辑:ssh -Q kex列表支持算法,而不是提供的算法。您实际上提供了使用以下算法的算法ssh -G host | grep kexalgorithms

相关内容