如何获取 pem 文件的 public 密钥?

How do I get the public key of a pem file?

我有一个包含我的私钥的 .pem 文件。但是,BitBucket 部署密钥具有以下格式:

ssh-rsa AAAAB3NzaC3yc2EAAAADAQABAAABAQDfZxX2LXOJlo5MP2tLP4fmQyjIAcATwATFKwM6K3mtT7+LKx1jk6YlFlEcj2CFxJHHTy6LCdDqoVzL3iNcD+mDl7NbcNEHytZNJnFQ5lAHPxDVa9ZbLnmP1OlfUvsQS+jAt7yMSwd8gZ6McOJfp9ZUn+r5LLpjYkF+AMQFPsf+6lhSJaOjOTbsA39OJwlnnSO6HF3W2Om+8Bgdpa/E4En5RZTBwFCAvLaaXY3XgN76xCR24TwTWFicBHWeLdADGFXB7OBOv4y805fNGbNKOl3Yb21mG89aUQlYjobeLqImyIrrEhX36hEdMW/t6zZK/1I0QC//uLa+GjJoeuPW4WY3 ubuntu@Box

通常使用:

cat ~/.ssh/id_rsa.pub | pbcopy

如何从 .pem 文件中提取这种格式的 public 密钥?

将 public 键复制到剪贴板。

Linux

ssh-keygen -f private.pem -y | xclip

MacOS

ssh-keygen -f private.pem -y | pbcopy

保存到文件

ssh-keygen -f private.pem -y > public.pub

请注意,如果您对 .pem 文件的权限不明确,那么 ssh-keygen 将生成一个空的 .pub 文件。

您通常可以通过以下方式解决此问题:

chmod 400 private.pem 

JazzCat 的回答有效。小补充:如果您对 .pem 文件的权限模糊,ssh-keygen 将生成空的 .pub 文件。

如果您在终端上看到任何关于私钥过于开放的投诉,请尝试使用 chmod 400 private.pem 缩小范围并重试上述命令。

ps:抱歉,我无权添加评论而不是回答。