Mic*_*hen 376 ssh amazon-s3 amazon-ec2 amazon-web-services key-pair
如何在AWS管理控制台中更改ec2实例的密钥对?我可以停止实例,我可以创建新的密钥对,但是我没有看到任何修改实例密钥对的链接.
yeg*_*256 462
只需这样做:https: //docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
以下是我所做的,感谢Eric Hammond的博客文章:
/dev/xvda1音量(我们称之为音量A) - 见这里/dev/xvdf(或/dev/sdf)SSH到新的微实例并将卷A安装到 /mnt/tmp
$ sudo mount/dev/xvdf1/mnt/tmp
复制~/.ssh/authorized_keys到/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda.pem文件登录而已.
Eri*_*ond 177
一旦实例启动,就无法在元数据级别更改与实例关联的密钥对,但您可以更改用于连接到实例的ssh密钥.
大多数AMI都有一个启动过程,它会下载公共ssh密钥并将其安装在.ssh/authorized_keys文件中,以便您可以使用相应的私有ssh密钥作为该用户进行ssh.
如果要更改用于访问实例的ssh密钥,则需要编辑实例本身的authorized_keys文件并转换为新的ssh公钥.
authorized_keys文件位于您登录用户的主目录下的.ssh子目录下.根据您运行的AMI,它可能位于以下位置之一:
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
编辑authorized_keys文件后,在断开与用于编辑文件的会话之前,请始终使用其他终端确认您能够进入实例.你不想犯错,完全把自己锁在实例之外.
当您考虑在EC2上使用ssh密钥对时,我建议您将自己的个人ssh公钥上传到EC2,而不是让亚马逊为您生成密钥对.
这是我写的一篇文章:
将个人ssh密钥上传到Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys
这仅适用于您运行的新实例.
小智 73
下载AWS pem后运行此命令.
ssh-keygen -f YOURKEY.pem -y
Run Code Online (Sandbox Code Playgroud)
然后将输出转储到authorized_keys.
或者将pem文件复制到AWS实例并执行以下命令
chmod 600 YOURKEY.pem
Run Code Online (Sandbox Code Playgroud)
然后
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
Eli*_*iss 50
AWS EC2支持的说明:
这将保存更新的authorized_keys文件
现在尝试使用新密钥pai为您的实例打开一个新的SSH会话
当您确认可以使用新密钥对SSH进入实例时,您可以使用vi .ssh/authorized_key并删除旧密钥.
回答Shaggie评论:
如果您无法连接到实例(例如密钥已损坏),请使用AWS控制台分离卷(http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html)并将其重新连接到工作实例,而不是更改卷上的键并将其重新连接回上一个实例.
Mar*_*rry 36
我注意到,当由Elastic Beanstalk管理时,您可以更改活动的EC2密钥对.在Elastic Beanstalk> Configuration> Security下,从EC2密钥对下拉列表中选择新密钥.您会看到此消息询问您是否确定:
EC2KeyName:对选项EC2KeyName设置的更改不会立即生效.您的每个现有EC2实例都将被替换,您的新设置将生效.
当我这样做时,我的实例已经终止了.然后它开始,终止,然后重新开始.显然,"替换"意味着终止和创建新实例.如果您已修改启动卷,请先创建AMI,然后在同一Elastic Beanstalk> Configuration> Instances表单中将AMI指定为自定义AMI ID.这也警告要更换EC2实例.
修改EC2密钥对和自定义AMI ID后,在看到有关两者的警告后,单击" 保存"继续.
请记住,重新创建实例时IP地址会发生变化,因此您需要从EC2控制台检索新的IP地址,以便在通过SSH连接时使用.
小智 31
我经历了这种方法,过了一段时间,才能使它发挥作用.缺乏实际命令使其变得艰难,但我想出来了.然而 - 在以后不久发现并测试了更简单的方法:
vin*_*ini 15
如果遵循以下步骤,将节省大量时间,并且不需要停止正在运行的实例.
这就对了.享受:)
Par*_*dav 15
这个问题有两种情况:-
1)您无权访问 .pem 文件,这就是您想要创建一个新文件的原因。
2)你有。与您一起访问 pem 文件,但您只想更改或创建新的 .pem 文件以用于某些漏洞或安全目的。
因此,如果您丢失了钥匙,您可以向上滚动并查看其他答案。但是,如果您只是出于安全目的更改 .pem 文件,请按照以下步骤操作:-
1)转到 AWS 控制台登录并从那里的密钥对部分创建一个新的 .pem 文件。它会自动将 .pem 文件下载到您的电脑中
2)如果您使用的是 Linux/ubuntu,请将权限更改为 400,请点击以下命令
chmod 400 yournewfile.pem
Run Code Online (Sandbox Code Playgroud)
3)在本地机器生成新下载文件的RSA
ssh-keygen -f yournewfile.pem -y
Run Code Online (Sandbox Code Playgroud)
4)从这里复制RSA代码
5) 现在通过以前的 .pem 文件通过 SSH 连接到您的实例
ssh -i oldpemfileName.pem username@ipaddress
sudo vim ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
6) 给一两行空格并将新文件复制的 RSA 粘贴到这里,然后保存文件
7) 现在您的新 .pem 文件已与正在运行的实例链接
8)如果你想禁用以前的 .pem 文件访问,那么只需编辑
sudo vim ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
文件并从此处删除或更改以前的 RSA。
注意:-小心删除,以免更改新创建的 RSA。
通过这种方式,您可以更改/连接新的 .pem 文件与您正在运行的实例。
出于安全考虑,您可以撤销对先前生成的 .pem 文件的访问。
希望它会有所帮助!
Ser*_*gey 10
我相信最简单的方法是:
如果您使用的是ElasticBeanstalk平台,可以通过以下方式更改密钥:
这将终止当前实例并创建具有所选键/设置的新实例.
警告:不要忘记再次清除用户数据。否则将在每次实例启动时推送此键。分步说明。
#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是复制
~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
进入您的AWS实例的authorized_keys
~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
这将允许您在不为ssh命令指定pem文件的情况下ssh进入EC2实例。经过测试连接后,即可删除所有其他键。
如果您需要创建新密钥以与他人共享,则可以使用以下方法:
ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)
这将创建private key.pem文件,您可以使用以下命令获取该文件的公共密钥:
ssh-keygen -f private_key.pem -y > public_key.pub
Run Code Online (Sandbox Code Playgroud)
拥有private_key.pem的任何人都可以与
ssh user@host.com -i private_key.pem
Run Code Online (Sandbox Code Playgroud)
您无需轮换根设备并更改authorized_keys. 为此,可以利用 userdata 将 ssh 密钥添加到任何实例。首先,您需要使用 AWS 控制台或通过 ssh-keygen 创建一个新的 KeyPair。
ssh-keygen -f YOURKEY.pem -y
Run Code Online (Sandbox Code Playgroud)
这将为您的新 SSH 密钥对生成公钥,复制此公钥并在下面的脚本中使用它。
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//
Run Code Online (Sandbox Code Playgroud)
重新启动后,机器将拥有指定的 SSH 公钥。第一次重启后删除用户数据。阅读有关启动时用户数据的更多信息。
| 归档时间: |
|
| 查看次数: |
357798 次 |
| 最近记录: |