假设我有一个SSH密钥,但是我已经删除了公共密钥部分。我有私钥部分。有什么方法可以重新生成公钥部分?

#1 楼

使用-y选项设置ssh-keygen:

ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub


来自'man ssh-keygen'

 -y      This option will read a private OpenSSH format file and print an
         OpenSSH public key to stdout.


使用-f选项指定私钥,您的密码可能是dsa而不是rsa。您的私钥名称可能包含您使用的名称。新生成的公钥应与您之前生成的公钥相同。

评论


为什么是“ -t dsa”? Mayge OP的关键是rsa吗?我会摆脱-t,而是使用-f。

– innaM
2009年8月10日14:44

好点,据此更新

–凯尔·勃兰特(Kyle Brandt)
2009年8月10日14:52

是的,我的最初是RSA。

–罗里
09年8月10日在15:19

在Mac OSX 10.9.3 Mavericks上,运行命令后出现“加载失败”的情况。我该如何解决?

–超聚焦
2014年6月8日在18:02



我认为,如果私钥受密码保护,则可以使用-N参数使这一步骤更进一步:ssh-keygen -f〜/ .ssh / id_rsa -y -N“ $ PASSWORD”>〜/ .ssh / id_rsa。酒馆

– ken
2014年10月7日在12:28

#2 楼

解决方案专门针对使用Windows的用户

使用的工具:


Puttygen(PuTTY密钥生成器)
WinSCP

步骤执行以下操作:


打开PuTTY密钥生成器。
加载您的私钥(*.ppk文件)。
从“公钥中复制公钥数据以粘贴到PuTTY密钥生成器的“ OpenSSHauthorized_keys文件”部分
,如果要使用它,请将密钥数据粘贴到“ authorized_keys”文件中(使用记事本)。

快照,其中显示了Puttygen的部分内容焦点:



评论


进一步阅读:askubuntu.com/questions/53553/…

– devprashant
15年11月21日在10:07

Puttygen还可以“导入” OpenSSH(实际上是OpenSSL传统)和SSHCOM格式的私钥。尽管它起源于Windows,但也已移植到Unix,puttygen的Unix版本是一个命令行(不是GUI)程序。参见例如linux.die.net/man/1/puttygen

–dave_thompson_085
18-09-6在6:28