如何从命令行使用私钥生成公钥,其中密钥是使用 openssh 生成的

如何从命令行使用私钥生成公钥,其中密钥是使用 openssh 生成的

我在尝试从私钥生成公钥时遇到了一些困难,从命令行,密钥是用 openssh 生成的

(我知道这可能不太好,但无论如何)

这里有三个私钥文件。hp_blah_id_rsa、id_rsa、rodney

root@droplet-50-1:~/.ssh# ls -l
total 20
-rw------- 1 root root 1512 May 29 00:14 authorized_keys
-rw------- 1 root root 2602 May 28 23:15 hp_blah_id_rsa
-rw------- 1 root root 2602 May 28 23:28 id_rsa
-rw-r--r-- 1 root root  222 May 28 21:47 known_hosts
-rw------- 1 root root 2602 May 28 21:17 rodney

如您所见,那里没有.pub 文件。

这里的文件命令确认它们是私钥,而我无需对它们进行 cat !

root@droplet-50-1:~/.ssh# file hp_blah_id_rsa 
hp_blah_id_rsa: OpenSSH private key

root@droplet-50-1:~/.ssh# file rodney
rodney: OpenSSH private key

root@droplet-50-1:~/.ssh# file id_rsa
id_rsa: OpenSSH private key

我想要 .pub 文件中可以从这些私钥派生出的公钥。

我看到了这个问题https://stackoverflow.com/questions/5244129/use-rsa-private-key-to-generate-public-key

其中提到openssl rsa -in mykey.pem -pubout > mykey.pub

但这对我来说不起作用例如

root@droplet-50-1:~/.ssh# openssl rsa -in id_rsa -pubout -out a.a
unable to load Private Key
140565827753280:error:0909006C:PEM routines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: ANY PRIVATE KEY

答案1

假设私钥是,id_rsa 那么ssh-keygen -y -f id_rsa将输出公钥,这样你就可以做到ssh-keygen -y -f id_rsa >id_rsa.pub

相关内容