我获得了AWS控制台访问权限,该帐户有两个正在运行的实例,但我无法关闭(在生产环境中)。但是,我想获得对这些实例的SSH访问权,是否可以创建一个新的Keypair并将其应用到实例,以便我可以SSH ?目前还不能为创建实例的密钥对获取现有的pem文件。

如果这是不可能的,是否有其他方法可以进入实例?


当前回答

在您的本地机器上,运行命令:

ssh-keygen -t rsa -C "SomeAlias"

运行该命令后,以*结尾的文件。将生成Pub。复制该文件的内容。

在Amazon机器上,编辑~/。Ssh /authorized_keys,并粘贴*. xml文件的内容。Pub文件(并首先删除任何现有内容)。

然后,您可以使用SSH -keygen命令生成的另一个文件(私钥)进行SSH。

其他回答

您可以通过以下命令向实例添加一个新密钥:

ssh-copy-id -i ~/.ssh/id_rsa.pub domain_alias

可以在~/目录下配置domain_alias。ssh配置

host domain_alias
  User ubuntu
  Hostname domain.com
  IdentityFile ~/.ssh/ec2.pem

对于Elastic Beanstalk环境,您可以像这样将键值对应用到正在运行的实例:

从EC2 ->密钥对(在网络和安全选项卡下)创建一个键值对 转到Elastic Beanstalk并单击您的应用程序 进入“配置->安全”,单击“编辑” 选择EC2密钥对并单击Apply 单击“确认”确认更新。它将终止环境并将键值应用到您的环境。

在您的本地机器上,运行命令:

ssh-keygen -t rsa -C "SomeAlias"

运行该命令后,以*结尾的文件。将生成Pub。复制该文件的内容。

在Amazon机器上,编辑~/。Ssh /authorized_keys,并粘贴*. xml文件的内容。Pub文件(并首先删除任何现有内容)。

然后,您可以使用SSH -keygen命令生成的另一个文件(私钥)进行SSH。

实例启动后,就无法更改 在元数据级别上与实例关联的Keypair,但是您 可以更改用于连接到实例的SSH密钥。

stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance

我没有找到通过控制台添加新密钥对的简单方法,但您可以手动完成。

只需使用现有密钥对ssh进入EC2盒子。然后编辑~/。Ssh /authorized_keys并在新行中添加新密钥。通过新机器退出并ssh。成功!