首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSH:如何禁用弱密码?

SSH:如何禁用弱密码?
EN

Unix & Linux用户
提问于 2016-12-30 09:29:43
回答 5查看 245.7K关注 0票数 66

我的组织的安全小组告诉我们要禁用弱密码,因为它们会发出弱密钥。

代码语言:javascript
复制
  arcfour
  arcfour128
  arcfour256

但我试图在ssh_config和sshd_config文件中查找这些密码,但发现它们都是注释的。

代码语言:javascript
复制
 grep arcfour *
ssh_config:#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

我还应该在哪里检查才能从SSH中禁用这些密码?

EN

回答 5

Unix & Linux用户

回答已采纳

发布于 2016-12-30 09:35:58

如果在ssh_config中没有使用Ciphers关键字设置明确的密码列表,那么根据man 5 ssh_config (客户端)和man 5 sshd_config (服务器端),默认值是:

代码语言:javascript
复制
            aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
            aes128-gcm@openssh.com,aes256-gcm@openssh.com,
            chacha20-poly1305@openssh.com,
            aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
            aes256-cbc,arcfour

注意弧四密码的存在。因此,您可能必须显式地为Ciphers设置一个限制性更强的值。

客户端的ssh -Q cipher将告诉您客户可以支持哪些方案。请注意,此列表不受ssh_config中指定的密码列表的影响。从ssh_config中删除密码不会从ssh -Q cipher的输出中删除它。此外,使用ssh-c选项显式指定密码将覆盖您在ssh_config中设置的密码限制列表,并可能允许您使用弱密码。这一特性允许您使用ssh客户端与不支持较新的更强密码的过时SSH服务器进行通信。

nmap --script ssh2-enum-algos -sV -p <port> <host>将告诉您您的服务器支持哪些方案。

票数 54
EN

Unix & Linux用户

发布于 2016-12-30 12:59:13

若要禁用RC4并在SSH服务器上使用安全密码,请在/etc/ssh/sshd_config中硬编码以下代码

代码语言:javascript
复制
ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

或者,如果您不喜欢口述密码,而只是想删除不安全的密码,则可以在命令行上运行此命令行(在sudo模式下):

代码语言:javascript
复制
sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|rijndael-cbc@lysator.liu.se\)\,\?//g" >> /etc/ssh/sshd_config

您可以使用以下方法检查服务器当前使用的密码:

代码语言:javascript
复制
sudo sshd -T | grep ciphers | perl -pe 's/,/\n/g' | sort -u

确保ssh客户端可以使用这些密码,运行

代码语言:javascript
复制
ssh -Q cipher | sort -u

看名单。

您还可以指示SSH客户端只与远程服务器协商安全密码。在/etc/ssh/ssh_config集合中:

代码语言:javascript
复制
Host *
    ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

上面的片段来自这里

要测试服务器的设置,可以使用ssh-审计

票数 46
EN

Unix & Linux用户

发布于 2017-12-11 17:38:12

显式指定密码列表的问题是,必须在新密码出现时手动添加它们。相反,只需列出要删除的密码,在列表(不是每个单独的密码)前面加上“-”字符。因此,在这种情况下,密码行应改为:

代码语言:javascript
复制
Ciphers -arcfour*

或者如果你喜欢:

代码语言:javascript
复制
Ciphers -arcfour,arcfour128,arcfour256

来自密码器选项( sshd_config )上的自OpenSSH 7.5发行以来,发布了2017-03-20手册页:

如果指定的值以“+”字符开头,则指定的密码将追加到默认集,而不是替换它们。如果指定的值以“-”字符开头,则指定的密码(包括通配符)将从默认集中删除,而不是替换它们。

这也适用于KexAlgorithms和MACs选项。

票数 37
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/333728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档