![内部网络上的旧式 SSH 客户端](https://linux22.com/image/698310/%E5%86%85%E9%83%A8%E7%BD%91%E7%BB%9C%E4%B8%8A%E7%9A%84%E6%97%A7%E5%BC%8F%20SSH%20%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
我的内部网络上有几个传统的 SSH 客户端(比如 2000 年代的 Macintosh 之类的),它们与现代 SSH 实现中使用的较新密码和密钥算法完全不兼容。
要使这些客户端正常工作,需要diffie-hellman-group1-sha1
添加KexAlgorithms
、arcfour
和Ciphers
。
我知道从加密的角度来看,这两种方法都是非常、非常不安全的。。不幸的是,有问题的主机也有来自互联网的入站访问权限,而且我确实真的如果可以避免的话,我不想启用这些垃圾密码,但这是让我的客户重新上线的最快方法。
关于如何加强此设置,我有几个问题:
sshd 是否有办法指定某些地址可以使用某些密码?
- 关于这个问题从 2011 年开始:sshd在过去 5 年中是否学会了如何使用块
KexAlgorithms
以及块Ciphers
内部的内容?Match
- 关于这个问题从 2011 年开始:sshd在过去 5 年中是否学会了如何使用块
是否有某种方法可以在需要弱加密的客户端前面放置一个堡垒/跳跃服务器,然后将该连接转发到具有更强加密的主机?
我是否错过了解决此问题的其他明显方法?
答案1
sshd 是否有办法指定某些地址可以使用某些密码?
是的。简单示例位于OpenSSH 的旧版页面。 简而言之:
Host legacy.example.org
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +arcfour
是否有某种方法可以在需要弱加密的客户端前面放置一个堡垒/跳跃服务器,然后将该连接转发到具有更强加密的主机?
是的。您可以将旧服务器设置为仅接受来自 jumpbox 服务器的连接,例如使用/etc/hosts.allow
( tcp_wrappers
)。例如:
sshd: <IP/hostname of bastion>
然后用户将配置ProxyCommand
跳过jumpbox
,例如
Host legacy.example.com
ProxyCommand ssh -W %h:%p proxy.example.com