亚马逊服务器 修改密钥对,更改ec2实例的密钥对

这是我做的,感谢Eric Hammond的博客文章:

停止正在运行的EC2实例

分离它的/dev/sda1卷(我们称之为卷A)

启动新的t1.micro EC2实例,使用我的新密钥对。 确保你在同一个子网中创build它 ,否则你将不得不终止实例并重新创build它。

将卷A连接到新的微型实例,如/dev/xvdf (或/dev/sdf )

SSH到新的微型实例,并将卷A挂接到/mnt/tmp

将~/.ssh/authorized_keys复制到/mnt/tmp/home/ubuntu/.ssh/authorized_keys

登出

终止微型实例

从它分离出卷A.

将卷A作为/dev/sda1附加到主实例

启动主实例

像以前一样login,使用新的.pem文件

而已。

一旦实例启动,就无法在元数据级别更改与实例关联的密钥对,但可以更改用于连接到实例的ssh密钥。

大多数AMI上都有一个启动进程,用于下载公共ssh密钥并将其安装在.ssh / authorized_keys文件中,以便您可以使用相应的私有ssh密钥作为该用户ssh进入。

如果你想改变你用来访问一个实例的ssh密钥,你需要编辑这个实例本身的authorized_keys文件并转换成新的ssh公钥。

authorized_keys文件位于您正在login的用户的主目录下的.ssh子目录下。 根据您正在运行的AMI,它可能在以下之一中:

/home/ec2-user/.ssh/authorized_keys /home/ubuntu/.ssh/authorized_keys /root/.ssh/authorized_keys

编辑authorized_keys文件后,始终使用不同的terminal来确认您能够在与用于编辑文件的会话断开连接之前,ssh进入实例。 你不想犯一个错误,把自己完全locking在实例之外。

在考虑EC2上的ssh密钥对时,我build议上传自己的个人ssh公钥到EC2,而不是让Amazon为你生成密钥对。

这是我写的关于这个的一篇文章:

这只适用于您运行的新实例。

下载您的AWS Pem后运行此命令。

ssh-keygen -f YOURKEY.pem -y

然后将输出转储到authorized_keys 。

或者将pem文件复制到您的AWS实例并执行以下命令

chmod 600 YOURKEY.pem

接着

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys

AWS EC2支持指令:

更改pemlogin

转到您的EC2控制台

在NETWORK&SECURITY下,点击密钥对点击创build密钥对

给你的新密钥对一个名字,保存.pem文件。 密钥对的名称将用于连接到您的实例

创build与您的实例的SSH连接并保持打开状态

在PuttyGen中,点击“Load”加载你的.pem文件

保持SSH-2 RSA单选button被选中。 点击“保存私钥”popup窗口警告,点击“是”

点击“保存公钥”,这样就可以生成公钥。 这是我们要复制到当前实例的公钥

使用新的密钥对名称和扩展名.pub保存公钥

在记事本中打开公钥内容

复制下面的内容“注释:”imported-openssh-key“和之前的”—-结束SSH2 PUBLIC KEY —-

注意 – 您需要将内容复制为一行 – 删除所有新行

在连接的实例上,使用vi工具打开authorized_keys文件。 运行以下命令:vi .ssh / authorized_keys您也应该在文件中看到原始的公钥

将光标移动到第一个公钥内容的末尾:input“i”作为插入

在新行上键入“ssh-rsa”并在粘贴公钥,空格和.pem文件的名称之前添加一个空格(不带.pem)注意 – 您应该获得一行与上一行相同的格式

按Esc键,然后键入:wq!

这将保存更新的authorized_keys文件

现在尝试使用新的密钥pai打开一个新的SSH会话到您的实例

当你确认你能够使用新的密钥对SSH进入实例时,你可以vi .ssh / authorized_key并删除旧的密钥。

回答Shaggie的评论:

我经历了这种方法,过了一段时间,才使其工作。 缺乏实际的命令使得它变得困难,但是我明白了。 然而 – 更简单的方法被发现和testing后不久:

将你的实例保存为AMI(重启或不重启,我build议重启)。 这只有在EBS支持的情况下才有效。

然后,只需从这个AMI启动一个实例并分配新的密钥文件。

将弹性IP(如果适用)移至新实例,即可完成。

我注意到,当由Elastic Beanstalkpipe理时,您可以更改您的活动EC2密钥对。 在Elastic Beanstalk>configuration>实例下,从EC2密钥对下拉列表中select新密钥。 你会看到这个消息,问你是否确定:

EC2KeyName:对选项EC2KeyName设置的更改不会立即生效。 您现有的每个EC2实例都将被replace,您的新设置将会生效。

当我这样做时,我的实例已经被终止了。 然后开始,终止,然后重新开始。 显然“replace”意味着终止并创build一个新的实例。 如果您已经修改了引导卷,请先创buildAMI,然后在相同的Elastic Beanstalk> Configuration> Instances窗体中指定AMI作为自定义AMI ID 。 这也警告replaceEC2实例。

修改EC2密钥对和自定义AMI ID后,在看到有关两者的警告后,单击保存以继续。

请记住,在重新创build实例时,IP地址会发生变化,所以您需要从EC2控制台检索新的IP地址,以便在通过SSH连接时使用。

修改“ yegor256 ”的答案。 就像下面的步骤一样,它将节省大量的时间,并且不需要停止正在运行的实例。

使用新的密钥对启动新的t1.micro EC2实例。 确保你在同一个子网中创build它 ,否则你将不得不终止实例并重新创build它。

SSH到新的微型实例,并将〜/ .ssh / authorized_keys的内容复制到您计算机上的某处。

用旧的ssh密钥login到主实例。

将文件内容从点2复制并replace为〜/ .ssh / authorized_keys

现在只能用新的密钥重新login。 旧密钥将不再工作。

这就对了。 享受🙂

如果您正在使用ElasticBeanstalk平台,则可以通过执行以下操作更改密钥:

Elastic Beanstalk面板

组态

实例(cog右上angular)

EC2密钥对

这将终止当前实例,并用选定的键/设置创build新的实例。

我相信最简单的方法是:

创build原始实例的AMI图像。

使用新的密钥对,使用AMI映像(来自步骤1)启动新的EC2实例。

用新密钥login到新的EC2实例。

这只有在您有权访问要更改/添encryption钥的实例时才有效。您可以创build一个新的密钥对。 或者,如果您已经有密钥对,则可以将新对的公钥粘贴到实例的authorized_keys文件中。

vim .ssh / authorized_keys

现在您可以使用该对的私钥并login。

希望这可以帮助。

Yegor256的答案对我很有帮助,但我想我只是想补充一些意见来帮助那些不太擅长安装驱动器的人(比如我!):

亚马逊给你一个你想要命名的卷的附加select。 你已经在/ dev / sda – / dev / sdp中使用了一个名称。然后,较新版本的Ubuntu将会把你放在/ dev / xvd(x)中的东西重命名为这个。

所以对于我来说,我select/ dev / sdp作为AWS中的装载名称,然后login到服务器,并发现Ubuntu已将卷更名为/ dev / xvdp1)。 然后我必须装上驱动器 – 对我来说,我必须这样做:

mount -t ext4 xvdp1 /mnt/tmp

跳过所有这些箍之后,我可以在/ mnt / tmp中访问我的文件

我已经尝试下面的步骤,它没有停止实例工作。 我的要求是 – 因为我改变了我的客户机,旧的.pem文件不允许我login到EC2实例。

使用旧的.pem文件从旧机器login到ec2实例。 打开〜/ .ssh / authorized_keys

您将在该文件中看到您的旧密钥。

ssh-keygen -f YOUR_PEM_FILE.pem -y它会生成一个密钥。 追encryption钥到步骤1中打开的〜/ .ssh / authorized_keys。 不需要删除旧密钥。

从AWS控制台创build一个新的密钥对。 将其存储在新机器中。 将其重命名为旧的pem文件 – 原因是旧的pem文件仍然与AWS中的ec2实例关联。

全做完了。

我可以从我的新客户端计算机login到AWS ec2。

最简单的解决方法是复制内容

~/.ssh/id_rsa.pub

到您的AWS实例的authorized_keys中

~/.ssh/authorized_keys

这将允许你ssh进入EC2实例,而不用为ssh命令指定一个pem文件。 一旦您testing连接,您可以删除所有其他键。

如果你需要创build一个新的密钥与他人分享,你可以这样做:

ssh-keygen -t rsa

这将创build私钥key.pem文件,您可以通过以下方式获取该公钥:

ssh-keygen -f private_key.pem -y > public_key.pub

任何有public_key.pub的人都可以连接

ssh user@host.com -i public_key.pub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于搭建亚马逊 EC2 服务器,您可以按照以下步骤进行操作: 1. 登录到亚马逊 AWS 管理控制台(https://console.aws.amazon.com/)。 2. 在控制台页面的顶部选择合适的区域,例如美国东部(N. Virginia)。 3. 在控制台页面左上角的搜索栏中,输入 "EC2" 并选择 "EC2 - 虚拟服务器"。 4. 在 EC2 控制台页面,点击 "实例"(Instances)选项卡。 5. 点击 "启动实例"(Launch Instances)按钮。 6. 在选择 Amazon Machine Image (AMI) 页面,选择适合您需求的操作系统镜像,比如 Amazon Linux 2 或者 Ubuntu。 7. 选择实例类型(Instance Type),这取决于您的应用需求和预算。一般来说,t2.micro 是一个较经济实惠的选择。 8. 配置实例详情,如网络(VPC)、子网(Subnet)、安全组(Security Group)等。如果不熟悉这些概念,可以使用默认选项。 9. 点击 "下一步:存储"(Next: Add Storage)按钮,配置您的实例存储需求。 10. 点击 "下一步:标签"(Next: Add Tags)按钮,为您的实例添加标签(可选)。 11. 点击 "下一步:安全组"(Next: Configure Security Group)按钮,配置实例的安全组规则。确保至少允许 SSH 访问。 12. 点击 "下一步:验证和启动"(Next: Review and Launch)按钮,确认您的配置信息。 13. 点击 "启动"(Launch)按钮。 14. 在弹出窗口中,选择一个现有的密钥对或者创建新的密钥对。密钥对是用于登录到您的 EC2 实例的凭证。 15. 点击 "启动实例"(Launch Instances)按钮。 16. EC2 实例正在启动过程中,您可以在 EC2 控制台的 "实例"(Instances)选项卡中查看实例状态。一旦实例状态变为 "运行中",您就可以使用 SSH 或者其他远程登录工具连接到您的实例了。 这些是基本的搭建步骤,根据您的需求可能还需要进一步的配置和设置。请注意,使用亚马逊 EC2 服务器会产生费用,确保在使用过程中了解和控制好相关费用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值