我需要通过 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]
连接到您的服务器。