更改整个Amazon OpsWorks堆栈的KeyPair

Ser*_*nin 3 ssh amazon-ec2 amazon-web-services aws-opsworks private-key

我有一个带有EC2实例的Amazon OpsWorks堆栈.现在它有默认SSH密钥(.pem),我无权访问.我尝试过的:

  1. 我创造了一个新的,保存并做到了chmod 600.
  2. 试图更改一个实例的KeyPair并尝试ssh -v -i path/to/.pem ubuntu@host重新启动它:permission denied (public key)
  3. 尝试Stack Settings在重新启动整个堆栈后在页面上更改整个堆栈的KeyPair :仍然得到permission denied (public key)
  4. 试图ubuntu改为ec2-user.依然没有!

注意到OpsWorks Home上的密钥已更改,但在EC2管理控制台中保持不变.奇怪.

我错过了什么吗?做错了?任何帮助赞赏.谢谢

One*_*ema 7

就像@chris所说,没有办法改变与实例相关的密钥.您需要使用分配给它的新密钥启动一个新密钥.

但是,如果您需要SSH访问,请不要尝试更改或更新与实例关联的密钥.自从我停止为实例分配密钥以来,允许OpsWorks在权限部分管理用户访问已经有一段时间了.

这为您提供了极大的灵活性,因为您无需在每次需要更改或设置新SSH密钥时在用户之间共享密钥或启动新实例.您可以随时添加或删除用户,并控制具有SSH和/或Sudo访问权限的用户.

要开始授予您的一个用户访问OpsWorks或导入IAM用户:

进口IAM用户

授予访问权限后,要求用户在"我的设置">"编辑"页面中添加自己的公钥:

在此输入图像描述

在此输入图像描述

如果您授予此用户SSH访问权限,那么您只需等待配方完成运行,用户就可以像这样连接到实例:

 $ ssh -i ~/.ssh/[your-key-file] [user-name]@[instance-ip-address]
Run Code Online (Sandbox Code Playgroud)

请注意,每次更改权限或设置部分时,都会在更新用户访问权限的实例中运行配方.

有关如何在OpsWorks中授予用户权限的更多信息,请参阅AWS文档