Unable to negotiate with 129.107.56.23 port 22: no matching key exchange method found.
Their offer: Diffie-hellman-group-exchange-sha1,Diffie-hellman-group14-sha1,Diffie-hellman-group1-sha1
答案1
该服务器仅支持较旧的加密机制。这些机制没有被破坏,所以可以使用它们,但它们是建立在过时的原语上的(SHA-1 - 在某些用途上被破坏,但它的弱点在这里不适用)并且它们使用有限域(非椭圆曲线)Diffie-Hellman,在相同安全级别下比 ECDH 慢得多。
根据OpenSSH 发行说明,OpenSSH 8.2diffie-hellman-group14-sha1
默认停止提供(另外两个已经在不久前被禁用,我想在 6.9 中),但仍然支持它。您可以在客户端配置文件中显式启用它。把这个放进去~/.ssh/config
:
Host omega
HostName 129.107.56.23
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
(我在列表的开头留下了一些现代算法,以防服务器升级。)
解决此部分后,您可能会收到有关用于 SSH 连接的其他加密算法的其他错误。您可能需要XxxAlgorithms
在 中配置其他选项~/.ssh/config
,如果您使用密钥进行身份验证,您可能需要使用由 生成的密钥ssh-keygen -t rsa
。