删除原始密钥对后,我似乎找不到将新创建的密钥对分配给亚马逊 ec2 实例的选项。我想“拒绝”第一个密钥对访问实例,我认为我成功了,但是,我无法用另一个密钥对重新分配实例。
当您在运行实例时指定密钥对时,大多数公共 AMI 会将该密钥对的公共 ssh 密钥复制到.ssh/authorized_keys
主用户账户主目录中的文件中。这仅在第一次启动时完成。
用户帐户因 Linux 发行版和 AMI 发布者而异。一些常见的用户帐户包括root
、ec2-user
和ubuntu
,因此默认文件可能是以下之一:
/root/.ssh/authorized_keys
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
注意:上述行为不是 EC2 强制执行的,而只是大多数流行的公共 AMI 实施的事实上的标准。
如果您想阻止初始密钥对访问正在运行的实例,只需编辑该.ssh/authorized_keys
文件,删除该公共 ssh 密钥条目,然后添加您想要访问的公共 ssh 密钥。
这是标准的 ssh 密钥管理,并非特定于 EC2。这是服务器安全的关键,因此了解您在做什么很重要。阅读 ssh 以确保您安全地执行此操作。
警告!在终止用于编辑文件的现有 ssh 会话之前,请确保在单独的终端中使用新密钥测试 ssh!如果您破坏了authorized_keys
文件,您可能会面临无法连接到实例的风险。
确保将公共ssh 密钥添加到authorized_keys
文件中,而不是私人ssh 密钥!如果您将私有 ssh 密钥保存到,例如,KEYPAIR.pem
那么下面的命令将输出相应的公共密钥:
ssh-keygen -y -f KEYPAIR.pem
Run Code Online (Sandbox Code Playgroud)
如果以上对您来说似乎太复杂,那么可以使用指定的新密钥对启动一个新实例。您应该始终有一个程序能够启动替换实例,因为您现有的实例可能随时出现故障。
在相关主题中,我建议使用您自己的 ssh 密钥,而不是让 Amazon 为您生成密钥对。它使周围的事情变得更容易。这是我写的一篇关于这个主题的文章:
将个人 ssh 密钥上传到 Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys
归档时间: |
|
查看次数: |
4161 次 |
最近记录: |