正如罗兰(Roland)在回答中提到的那样,这是一个警告,警告它ssh-agent
不了解公钥的格式,即使那样,公钥也不会在本地使用。
但是,我也可以详细说明并回答为什么出现警告。简而言之,PuTTY密钥生成器会根据您在程序中执行的操作生成两种不同的公共密钥格式。
注意:在我的解释中,将使用/生成的密钥文件将使用id_rsa
其适当的扩展名进行命名。此外,为了方便复制粘贴,将假定键的父文件夹为~/.ssh/
。根据需要调整这些细节以适合您的需求。
格式
链接到相关的PuTTY文档
SSH-2
当您保存使用的关键PuTTY密钥生成使用“保存公钥”按钮,它将被保存在由定义的格式RFC 4716。
例:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "github-example-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYF
i2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcp
pY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3
oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEA
ip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9
tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw==
---- END SSH2 PUBLIC KEY ----
OpenSSH的
与流行的看法相反,这种格式不会由生成器保存。但是,它已生成并显示在标题为“用于粘贴到OpenSSHauthorized_keys文件的公共密钥”的文本框中。要将其保存为文件,您必须从文本框中手动复制它并将其粘贴到新的文本文件中。
对于上面显示的键,这将是:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw== github-example-key
密钥的格式很简单ssh-rsa <signature> <comment>
,可以通过重新排列SSH-2格式的文件来创建。
重新生成公钥
如果您正在使用ssh-agent
,则可能还会访问ssh-keygen
。
如果您具有OpenSSH专用密钥(id_rsa
文件),则可以使用以下命令生成OpenSSH公用密钥文件:
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
如果只有PUTTY专用密钥(id_rsa.ppk
文件),则需要先进行转换。
- 打开PuTTY密钥生成器
- 在菜单栏上,单击“文件”>“加载私钥”
- 选择你的
id_rsa.ppk
文件
- 在菜单栏上,单击“转换”>“导出OpenSSH密钥”
- 将文件另存为
id_rsa
(不带扩展名)
现在您已经拥有一个OpenSSH专用密钥,您可以使用上述ssh-keygen
工具对密钥进行操作了。
奖励:PKCS#1 PEM编码的公钥格式
老实说,我不知道此键的用途,因为我不需要它。但是我多年来整理的笔记中都有它,为了有益于健康,我将其包括在此处。该文件将如下所示:
-----BEGIN RSA PUBLIC KEY-----
MIIBCAKCAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5Ew
gnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8D
Gm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48
ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8
hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D
6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElwIBJQ==
-----END RSA PUBLIC KEY-----
可以使用以下命令使用OpenSSH私有密钥(如上面“重新生成公共密钥”中生成的)生成文件:
ssh-keygen -f ~/.ssh/id_rsa -y -e -m pem > ~/.ssh/id_rsa.pem
另外,您可以使用以下方式使用OpenSSH公钥:
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pem > ~/.ssh/id_rsa.pem
参考文献: