SSH 服务器公钥太小

SSH 服务器公钥太小

客户的供应商在其 Debian 8 服务器上生成 PCI 合规性扫描。

摘自他们的报告:

短于 2048 位的 DSA 密钥和 RSA 密钥被认为易受攻击。建议安装长度至少为 2048 位或更大的 RSA 公钥,或切换到 ECDSA 或 EdDSA。

我的大部分搜索都返回如何处理 ssh 作为客户端。少数间接涉及强化此服务器的搜索建议我尝试更改 /etc/ssh/ssh_config。

尽管据说它已经过时了,但我还是从本地运行了 ssh-audit,它提供了一些建议,删除了一些密钥、mac 和 hex。看到供应商的报告后,我注释掉了

#HostKey /etc/ssh/ssh_host_ecdsa_key

并重新启动了 ssh.service 并从本地重新运行 ssh-audit,但它似乎并没有改变其建议列表,表明我做错了什么。

我怀疑我没有采取正确的措施来为客户解决这个问题。我应该怎么做?

这是向 PCI 供应商展示的后续内容Debian 8 已成功修复

答案1

在 Debian jessie 上(目前是旧稳定版且处于 LTS 阶段;您应该启用 LTS 并在未来几个月内升级),ssh RSA 密钥当前以 2048 位生成。但如果系统升级到 jessie,它可能使用 1024 位生成旧密钥。

您可以使用以下命令检查主机 RSA 密钥的状态:

error@vmtest-debian8:~$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
2048 1a:bc:78:5e:2f:37:dd:75:c2:70:e8:18:41:35:b9:2e /etc/ssh/ssh_host_rsa_key.pub (RSA)

如果密钥小于 2048 位,则需要生成一个新的 ssh 主机密钥。

error@vmtest-debian8:~$ sudo ssh-keygen -N '' -b 2048 -t rsa -f /etc/ssh/ssh_host_rsa_key
Generating public/private rsa key pair.
/etc/ssh/ssh_host_rsa_key already exists.
Overwrite (y/n)? y
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
47:60:91:14:b1:15:6e:6d:ea:e9:36:37:31:08:d3:69 root@vmtest-debian8
The key's randomart image is:
+---[RSA 2048]----+
|       .B=o.     |
|       ..= .     |
|        ..+.o    |
|        ooEo     |
|        S+o.     |
|         o..o    |
|          o  o   |
|         .o o    |
|         ..o .   |
+-----------------+

当然,重新启动 OpenSSH。

error@vmtest-debian8:~$ sudo systemctl restart sshd

请注意,下次有人连接到服务器时,他们可能会收到类似这样的恶意邮件,并且无法连接:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

受影响的用户将需要适当编辑其已知主机。

相关内容