Eric Hammond..
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
编辑authorized_keys文件后,在断开与用于编辑文件的会话之前,请始终使用其他终端确认您能够进入实例.你不想犯错,完全把自己锁在实例之外.
当您考虑在EC2上使用ssh密钥对时,我建议您将自己的个人ssh公钥上传到EC2,而不是让亚马逊为您生成密钥对.
这是我写的一篇文章:
这仅适用于您运行的新实例.
aatifh:这是我写的关于如何摆脱这种情况的文章:http://alestic.com/2011/02/ec2-fix-ebs-root (11认同)
这是一个很好的小单行,用于添加密钥.除了AWS生成的密钥之外,这只会添加您的普通pub密钥,因此如果它不起作用,您将不会自己锁定:http://stackoverflow.com/a/5654728/193494 (4认同)