我有一对使用以下方式生成的密钥:。这产生了 2 个文件和.ssh-keygen -t rsa -b 4096 -f ~/.ssh/keys/my_key -C "[email protected]"
my_key
my_key.pub
现在我需要将该对转换为.pem
密钥菲勒齐拉兼容(通过 sftp 连接)。
我已经尝试过类似的ssh-keygen -f my_key -m 'PEM' -e > my_key.pem
但是菲勒齐拉不停地抱怨It doesn't contain a private key
。
我在跑步乌班图 22.04 x64。
请指教。
答案1
(对于 OpenSSH 7.8 及以上版本,包括您的 8.9)来自man ssh-keygen
或在网上
-e
此选项将读取私有或公共 OpenSSH 密钥文件,并以 -m 选项指定的格式之一将公共密钥打印到标准输出。 ...
请注意“公钥”一词。为了验证您自己的身份(这就是您希望 FileZilla 执行的操作),您需要私钥而不仅仅是公钥。
-m key_format
指定密钥生成的密钥格式、-i(导入)、-e(导出)转换选项以及 -p 更改密码操作。后者可用于在 OpenSSH 私钥和 PEM 私钥格式之间进行转换。 ...
正如它所说,用于ssh-keygen -p -f .../my_key -m pem
“更改”密码 - 它不需要真正更改,您可以输入与旧密码相同的新密码,但无论如何都会以ssh-keygen
所需的格式重写私钥文件。 (由于这会覆盖以前的文件,因此如果您还想保留 OpenSSH-new-format 版本,请在执行此操作之前进行备份,或者在副本上执行此操作。)
为了完整起见,如果您有(或获得)(足够新)Putty,其实用程序 puttygen 可以将 OpenSSH-new-format 转换为 OpenSSL-PEM或者Putty-PPK 格式,FileZilla 都可以读取。