更改 OpenSSH 服务器使用的密钥交换算法

更改 OpenSSH 服务器使用的密钥交换算法

我正在尝试从 Cisco IOS XE 设备通过 SSH 连接到某个 Linux 计算机(正在运行 OpenSSH-Server)。然而,我得到

Jan 08 15:22:39 localhost.localdomain sshd[2041]: Unable to negotiate with 10.*.*.* port 16385: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 [preauth]

如何通过允许使用不太安全的密钥交换算法的传入会话来解决此问题?

我调查了https://www.openssh.com/legacy.html但它们仅涵盖到旧设备的传出连接,而不是相反。

谢谢你,

答案1

这无需降级 sshd 即可实现。你必须添加KexAlgorithms到你的sshd_config文件中(在 Ubuntu 服务器 22 上测试过)。

之后您可能仍然会遇到一些错误,例如no matching host key type found。然后,您需要在“HostkeyAlgorithms”下指定这些。

KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
HostkeyAlgorithms +ssh-dss,ssh-rsa

我不确定您是否只能为某些客户端启用这些功能。

答案2

你可以尝试使用 "ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 username@IPAddress"

相关内容