当我在 PuttyGen 中导出私钥时,我假设我设置的密码也用于 openSSH 版本。我发现我输入的密码不起作用。使用密码以 openSSH 格式导出私钥的正确方法是什么?
要将导出的 ssh 密钥传输到 linux,我只需将其粘贴到 nano 中,然后尝试通过 ssh 添加它。它提示我输入密码,但不接受我提供的密码。不过,PuttyGen 可以用该密码成功导入它。
答案1
Windows PuTTYgen 的“导出 OpenSSH 密钥”做使用 3DES-CBC 加密密钥。如果密码非空,则输出文件显示以下内容:
-----开始 RSA 私钥----- Proc-Type:4,已加密 DEK 信息:DES-EDE3-CBC,157A04D5AE43F45B NiGUXnTOhATzg4dGvyXs8rzetF7KpplJJIKrZvQunXuVcZhVS+NTpnTgwJb+zOCm ...
过去 4 年,我测试过各种版本。如果密码为空,我甚至会收到“你确定吗?”提示。
Linuxputtygen
在转换时也总是使用相同的密码。
对于 RSA 和 DSA 密钥,OpenSSH 使用与 OpenSSL 相同的“原始”密钥格式。因此,如果 3DES-CBC 不够用,您可以使用openssl
命令行工具来重新加密它们:
openssl rsa -aes-128-cbc < old.key > new.key
在 Unix 上当然 OpenSSH 本身的ssh-keygen
更好:
ssh-keygen -p -f old.key