AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 706336
Accepted
user120858
user120858
Asked: 2015-07-17 10:27:16 +0800 CST2015-07-17 10:27:16 +0800 CST 2015-07-17 10:27:16 +0800 CST

如何从 ssh 密钥对获取 .pem 文件?

  • 772

我使用 ssh-keygen 创建了一个密钥对并获得了两个经典的 id_rsa 和 id_rsa.pub。

我将公钥导入我的 AWS EC2 账户。

现在我创建了一个 Windows 实例并解密该实例密码,AWS 控制台要求我提供一个 .pem 文件。如何从我的两个 id_rsa 和 id_rsa.pub 文件中获取该 .pem 文件?

amazon-ec2
  • 6 6 个回答
  • 268419 Views

6 个回答

  • Voted
  1. Best Answer
    fuero
    2015-07-17T10:38:14+08:002015-07-17T10:38:14+08:00

    根据this,可以使用此命令:

    ssh-keygen -f id_rsa -e -m pem
    

    这会将您的公钥转换为与 OpenSSL 兼容的格式。您的私钥已经采用 PEM 格式,可以按原样使用(如 Michael Hampton 所述)。

    仔细检查 AWS 是否不要求 PEM 格式的 (X.509)证书,这与您的 SSH 密钥不同。

    • 92
  2. Matt
    2015-07-17T14:43:31+08:002015-07-17T14:43:31+08:00

    使用ssh-keygen以 .pem 格式导出密钥对我有用。

    ssh-keygen -f id_rsa.pub -m 'PEM' -e > id_rsa.pub.pem
    

    然后根据需要简单地复制.pem密钥。

    选项如下:(见man ssh-keygen)

    • -f id_rsa.pub: 输入文件
    • -m 'PEM': 输出格式 PEM
    • -e: 输出到 STDOUT
    • 50
  3. Mike Barlow - BarDev
    2019-08-13T11:49:58+08:002019-08-13T11:49:58+08:00

    最初,在使用 时ssh-keygen,我可以生成与 AWS EC2 兼容的公钥,但在创建兼容的私钥时遇到了问题。以下创建与 AWS EC2 兼容的公钥和私钥对。

    ssh-keygen -P "" -t rsa -b 4096 -m pem -f my-key-pair
    

    以下是每个参数的信息:

    • -P:用于密码。故意设置为空。
    • -t:指定要创建的密钥类型。AWS EC2 密钥对需要 RSA。根据我的经验,这与创建的公钥有关。
    • -b:指定密钥中的位数。支持的长度为 1024、2048 和 4096。如果您在使用 EC2 Instance Connect API 的同时使用 SSH 进行连接,则支持的长度为 2048 和 4096。
    • -m:指定密钥生成的密钥格式。在生成支持的私钥类型时设置“PEM”格式将导致密钥以旧版 PEM 私钥格式存储。AWS EC2 密钥对需要旧格式
    • -f:指定密钥文件的输出文件名

    资源:

    有关 ssh-keygen 的更多信息,请参阅:  https ://man.openbsd.org/ssh-keygen.1

    AWS - EC2 密钥对 -  https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

    • 17
  4. user120858
    2015-07-17T14:04:22+08:002015-07-17T14:04:22+08:00

    id_rsa是您必须用来解密 Windows EC2 实例密码的文件,但只需确保您复制粘贴的文件不受短语保护。

    我解决了获取临时不受保护的id_rsa文件的问题,例如:

    $ openssl rsa -in ~/.ssh/id_rsa -out tmp_file.pem
    
    • 8
  5. Matt Houser
    2015-07-17T11:44:24+08:002015-07-17T11:44:24+08:00

    当您启动 EC2 实例时,您为其分配密钥对(或不分配)。之后无法更改。

    只有使用该密钥对中的 .pem 文件,您才能解密 Windows 密码。

    .pem 文件将在创建密钥对时下载。你不能再得到它。如果你失去了它,那你就不走运了。

    您不能使用自己生成的 .pem 文件,除非您在启动实例之前将该密钥导入 AWS 并将其分配给实例。

    简而言之,如果您没有原始的 .pem 文件,则无法获取密码。

    编辑:重新阅读问题后,我意识到 OP 已将他的密钥导入 AWS。

    • 0
  6. Dita Aji Pratama
    2022-05-16T22:51:14+08:002022-05-16T22:51:14+08:00

    在您的服务器上添加您的公钥到authorized_keys

    cat .ssh/id_rsa.pub >> .ssh/authorized_keys
    

    或者您可以使用服务器中的文本编辑器手动添加它。

    在您的服务器中复制您的私钥

    cp .ssh/id_rsa /home/your_user/your_key.pem
    

    现在在您的客户端 PC 中,从服务器下载密钥

    scp [email protected]:/home/your_user/your_key.pem /home/your_local_user/Downloads/
    
    • 0

相关问题

  • 权限被拒绝(公钥)。从本地 Ubuntu 到 Amazon EC2 服务器的 SSH

  • 管理员如何管理他们的 EC2 EBS 和快照?

  • 云有多大?[关闭]

  • EC2 映像启动

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve