我的 /etc/ssh/sshd_config 文件中有以下几行:
MACs hmac-sha2-256,hmac-sha2-512,[email protected],[email protected]
MACs [email protected],[email protected],[email protected],[email protected],[email protected]
但仍然可以使用 sshssh -o MACs=hmac-md5-96 user@host
这里还有以下输出ssh -Q mac
:
hmac-sha1
hmac-sha1-96
hmac-sha2-256
hmac-sha2-512
hmac-md5
hmac-md5-96
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
如何将其限制为 256 和 512?
答案1
配置所需算法的最佳方法是使用/etc/ssh/sshd_config
文件中第一行之类的内容:
MACs [email protected],[email protected],hmac-sha2-512,hmac-sha2-256
请注意,我首先对 EtM MAC 进行了排序,它们更安全,并且也优先选择更安全的选项。实际上,这没有什么区别,因为 SSH 协议要求双方选择服务器也支持的第一个受支持的客户端 MAC。您需要重新启动服务器才能使该值生效;否则,您将看不到任何变化。
您的情况中的第二行只是删除了一些算法。您没有删除的是 HMAC-MD5,它不再是一个好的选择。通过仅指定安全选项,不安全选项将被自动删除,因此这是解决此问题的最佳方法。
请注意,ssh -Q mac
列出了编译到二进制文件中的所有选项,并不表明配置了什么。虽然列出的许多选项都是糟糕的选择,但不幸的是,有些人拥有必须支持的过时且不安全的操作系统或硬件,并且拥有这些选项对于此类意外情况可能很有用。因此,OpenSSH 包含多个选项,其中一些选项默认情况下处于禁用状态。
此外,如果您使用 AEAD 密码(如[email protected]
、[email protected]
或 )[email protected]
,则不会使用 MAC 值,因为 AEAD 密码代替 MAC 提供完整性。因此,如果您想测试,您可能还需要选择一个密码,例如aes256-ctr
不是 AEAD,因此您的测试命令应如下所示:
ssh -oMACs=hmac-md5 -oCiphers=aes256-ctr user@host