当您有权访问 EC2 实例时更改 EC2 pem 文件密钥对
Posted
技术标签:
【中文标题】当您有权访问 EC2 实例时更改 EC2 pem 文件密钥对【英文标题】:Changing EC2 pem file key pair when you have access to the EC2 instance 【发布时间】:2019-05-07 08:07:28 【问题描述】:感谢您的宝贵时间。
我有一个 EC2 实例,但出于安全原因,我需要更改 .ssh/authorized_keys 中关联的 pem 文件。我知道公共 pem 文件进入了 authorized_keys。
我不想将 ec2 实例的卷挂载到新的卷上。我正在考虑作为最后一个选择,因为我确实可以访问 EC2 实例。
如何做到这一点?
我尝试过: 这篇帖子Change key pair for ec2 instance Pat Mcb 的回答,但没有运气。
下载 AWS pem 后运行此命令。
ssh-keygen -f YOURKEY.pem -y 然后将输出转储到 授权密钥。
或将 pem 文件复制到您的 AWS 实例并执行以下命令
chmod 600 YOURKEY.pem 然后
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
但这对我不起作用。如果我完全按照它下载 aws 密钥对密钥,并按照说明在 ssh 进入实例时复制密钥,当我执行 ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys 它要求密码(无需输入)
我正在做的事情如下。 我创建了一个新密钥 ssh-keygen newpem.pem
我将 .pub 文件复制到 .ssh/authorized_keys 中
有人可以解释我做错了什么吗? 请注意,authorized_keys 文件具有正确的权限。
【问题讨论】:
与其描述您所做的事情,不如通过从您的终端(客户端和服务器)复制文本并复制到问题中的code
块中来显示确切的步骤。您还应该从客户端运行 ssh -v
以准确显示正在发生的事情(当然,您应该编辑此输出中的所有用户名或主机名)。
您尝试过docs.aws.amazon.com/AWSEC2/latest/UserGuide/… 中列出的步骤吗?
【参考方案1】:
以下是在 AWS EC2 上更改密钥对的步骤。
登录 AWS 控制台。转到网络和安全 >> 密钥对。
提供您的密钥对 (mykeypair) 和密钥类型 (RSA) 的名称以及 Private 密钥格式 (.pem)。并单击创建密钥对。它会要求你 在本地机器上下载 .pem 文件。保存并记住 位置。
登录您的 EC2 实例并转到 .ssh. 位置。创建一个名为的新文件 (mykeypair.pem) 并粘贴我们在第 2 步中下载的文件中的内容
运行命令:sudo chmod 600 mykeypair.pem
运行命令:ssh-keygen -f mykeypair.pem -y
会生成一些
内容。复制该内容。打开名为 autherized_keys 的文件,然后
删除其中的所有内容。
粘贴我们在上一步中生成的复制内容。输入空格后最后还要输入你的文件名(mykeypair)。
-
重启您的实例。转到puttygen并生成.ppk文件
使用您从密钥对下载的 pem 文件。您将能够使用从 putty 新生成的 .ppk 登录您的 ec2。
【讨论】:
【参考方案2】:您甚至不需要执行所有这些操作,只需注意 AWS EC2 的几件事,您就可以获得默认用户的私钥。比如 ec2-user /ubuntu 等。
你做对了
ssh-keygen -t rsa -C "your_email@example.com"
如果它要求输入任何释义,请将其留空。
只需按下即可接受默认位置和文件名。如果 .ssh 目录不存在,系统会为您创建一个。
如果提示密码短语,请输入并重新输入
你现在有那把钥匙了。
复制那个键
登录到您的 Ec2 服务器。
须藤苏
vim ~/.ssh/authorized_keys
粘贴密钥。
:wq!
您会在那里看到一个密钥,将其复制并作为备份保存在某处。
现在将新生成的密钥粘贴到该文件中
并保存文件。
现在要注意的最后一步是权限,所以运行以下命令。
sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
现在你可以走了。
【讨论】:
太好了,非常感谢!这对我有用!您可以更改 rsa 密钥的名称和位置,它仍然有效。请注意在 root 和用户 (ec2-user/ubuntu) 中复制 authorized_keys 文件作为备份。另外,请在控制台上至少打开两个连接,以防您需要恢复。 我已经多次将公钥复制到服务器,但我正在运行 chmod 命令。非常感谢!【参考方案3】:似乎您想弃用旧密钥并改用新密钥。这些步骤可能会对您有所帮助 -
使用 aws 控制台创建新的密钥对并将其下载到您的系统中。
使用命令 - "ssh-keygen -y"
从私钥 (.pem) 文件中检索公钥使用旧密钥通过 SSH 连接到实例。
在您有权访问实例后,将您在第 2 步中获得的公钥添加到 "~/.ssh/authorized_keys" 文件中,然后保存文件。
退出实例,然后尝试使用新密钥访问实例。
希望对您有所帮助。谢谢!
【讨论】:
太好了,非常感谢。此解决方案可能仍需要 Prabhat Singh 提到的权限。 我的错。解决方案不需要权限。完美的。非常感谢。以上是关于当您有权访问 EC2 实例时更改 EC2 pem 文件密钥对的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 PEM 文件以 root 用户身份连接到 ec2 实例?
使用不同的 SSH 密钥部署私有 EC2 实例(例如 Ec2.pem)和堡垒主机(例如 BastionKey.pem) - AWS VPC