这是消息腻子/小猫通过连接时产生SSH到我的旧 Buffalo WHR-HP-G54N 路由器:
服务器支持的第一个密钥交换算法是[Whatever]`,它低于配置的警告阈值。您想继续此连接吗?
我知道如何配置我的 OpenSSH 客户端以允许特定的算法,但是是否有一种简单的方法来获得一些等效的(而且,我必须说,舒适的)行为?
编辑01:只要这个问题询问任何“低安全服务器”(因此不具体),并且为了避免答案集中于特定算法,我已编辑消息框以将其显示为 [Whatever] 。
答案1
根据具体情况,有两种方法可以解决这个问题。也就是说:显然,舒适是以牺牲安全为代价的。但对于这样的路由器,你的选择无论如何都是有限的。
该软件包openssh-client-ssh1
允许连接到已弃用的 SSH v1 协议。但显然,无论何时使用客户端,您都必须使用ssh1
in 代替。ssh
不过,付出的代价很小。
如果您使用能够创建别名的 shell,您可以针对您的特定问题执行类似的操作(似乎是 SSH v2):
alias SSH-insecure='ssh -o KexAlgorithms=+diffie-hellman-group1-sha1'
前段时间我不得不处理一堆过时的基于 Linux 的设备,我又添加了两个选项,因为 IP 会一直变化:
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
...但是 YMMV,所以请用常识来决定。
如果 IP 地址和/或名称是固定的,另一种选择是Host
在您的文件中创建一个匹配部分,~/.ssh/config
以在那里注入上述选项。参考ssh_配置(5)。
答案2
OpenSSH 中没有类似这样以交互方式询问用户的功能。
最好的选择是编写一个节来~/.ssh/config
匹配要使用此密钥交换的主机,并在每次找到需要添加的服务器时更新它。
那会是这样的
Host old-machine-1 old-machine-2
KexAlgorithms +diffie-hellman-group1-sha1
IdentityFile ~/.ssh/id_rsa
(例如,我已经展示了该IdentityFile
设置,因为许多旧机器无法处理 ED25519)