![尝试理解和使用 SSH。从 sshd_config 中删除所有 ssh 密码会发生什么情况](https://linux22.com/image/993330/%E5%B0%9D%E8%AF%95%E7%90%86%E8%A7%A3%E5%92%8C%E4%BD%BF%E7%94%A8%20SSH%E3%80%82%E4%BB%8E%20sshd_config%20%E4%B8%AD%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%20ssh%20%E5%AF%86%E7%A0%81%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5.png)
如果我们从 sshd_config 文件中删除所有 ssh 密码,它是否允许通过当前系统的所有可用密码建立 ssh 连接?或者是否有一个特定的集合允许?如果有特定的集合,那么默认的 ssh 密码集是如何以及是什么。如果它开始允许所有可用的 ssh 密码,那么我可以假设列表与“ssh -Q cipher”的输出相同吗?
答案1
不。
- 如果您未
Ciphers
在 中指定sshd_config
,客户端将使用允许的默认密码列表。手册页对此进行了说明。在 Ubnutu 16.04
默认值为:
[email protected], aes128-ctr,aes192-ctr,aes256-ctr, [email protected],[email protected]
- 如果您指定某些集合,例如
Ciphers aes128-ctr
,则只有该密码才会用于连接。
生成的列表ssh -Q cipher
将显示所有受支持的密码的列表,但并非所有密码都已启用,因为其中一些仅由于遗留原因而存在。
答案2
是,如果没有Ciphers
指定sshd_config
限制可以使用的密码sshd
将使用所有受支持的、非弃用的密码。
在正常的软件包分发中(您没有自己修改和构建 openssh 软件包),ssh
和支持的密码sshd
将是相同的,因此ssh -Q cipher
将列出支持的sshd
密码(它们应该与 中列出的密码相同man sshd_config
)。
请注意,ssh -Q
查询客户端支持的内容;它不会列出某些客户端支持的密码偏僻的机器的sshd
。它也不会识别出这些密码中的哪一个是已弃用因此本地 默认不使用。给定安装的默认列表可在 ;部分sshd
中找到(对于 Ubuntu 16.04):Ciphers
man 5 sshd_config
[email protected],
aes128-ctr,aes192-ctr,aes256-ctr,
[email protected],[email protected]