带有 DSA 2048 位密钥的 SSH

带有 DSA 2048 位密钥的 SSH

我需要通过 ssh 密钥建立安全连接,先决条件是:

  • DSA类型
  • 位数:2048
  • 密码:是

在我的 Linux 上,我无法创建这种密钥,该人说:

DSA 密钥必须正好是 1024 位,符合 FIPS 186-2 的规定

但我发现在 Putty 中,我们可以创建 DSA 2048 位密钥。因此,我尝试将 Putty 生成的密钥对放在我的用户的 .ssh 目录中。但这行不通……

私钥如下所示:

PuTTY-User-Key-File-2: ssh-dss 
Encryption: aes256-cbc 
Comment: dsa-key-20150127 
Public-Lines: 17 
xxxxxxxxxxxxx 
Private-Lines: 1
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Private-MAC: xxxxxxxxxxxxxxxxxxxxx

我认为这个密钥无法进行身份验证。

我的问题是:

  • 我是否需要格式化此密钥的布局才能在我的 CentOS 上使用?这可能吗?
  • 如果没有,还有其他方法可以创建一对带有密码的 2048 位 DSA 密钥吗?

谢谢你的帮助,抱歉我的英语不好

答案1

鉴于 OpenSSH(即使最新版本为 6.7),您将无法使用该ssh-keygen工具创建 2048 位 DSA 密钥。但是,您应该能够使用 puttygen 创建 2048 位 DSA 密钥。生成密钥后,复制文本框中显示的文本,标题为“用于粘贴到 OpenSSH authorized_keys 文件中的公钥:”,并将其粘贴到.ssh/authorized_keys服务器上的用户主目录中。要使用密钥进行连接,您需要在客户端上运行 pageant,并加载密钥。

另外,请注意~/.ssh目录和authorized_keys文件的文件权限。如果它们可以被其他人写入,sshd则不会使用该authorized_keys文件,除非StrictModes选项已设置为no

(我可以确认这适用于 CentOS 6.6 和 putty 0.63)

更新:要将私钥导出为 OpenSSH 格式,请使用 puttygen。单击“转换”,然后单击“导出 OpenSSH 密钥”。它创建的文件格式正确,适合 OpenSSH。将该文件(您的密钥)放在客户端系统上并注意权限。然后您可以使用它ssh -i [name of key file]连接到您的服务器。

相关内容