是否可以将 OpenSSH 客户端配置为询问而不是直接拒绝与低安全服务器的连接?

是否可以将 OpenSSH 客户端配置为询问而不是直接拒绝与低安全服务器的连接?

这是消息腻子/小猫通过连接时产生SSH到我的旧 Buffalo WHR-HP-G54N 路由器:

服务器支持的第一个密钥交换算法是[Whatever]`,它低于配置的警告阈值。您想继续此连接吗?

我知道如何配置我的 OpenSSH 客户端以允许特定的算法,但是是否有一种简单的方法来获得一些等效的(而且,我必须说,舒适的)行为?

编辑01:只要这个问题询问任何“低安全服务器”(因此不具体),并且为了避免答案集中于特定算法,我已编辑消息框以将其显示为 [Whatever] 。

答案1

根据具体情况,有两种方法可以解决这个问题。也就是说:显然,舒适是以牺牲安全为代价的。但对于这样的路由器,你的选择无论如何都是有限的。

该软件包openssh-client-ssh1允许连接到已弃用的 SSH v1 协议。但显然,无论何时使用客户端,您都必须使用ssh1in 代替。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)

相关内容