我有一个ec2-ubuntu实例。现在我忘记了用户的密码。不幸的是,我也丢失了.pem文件和.ppk文件,我曾经使用过putty。并且发现很难进入。我想升级我的一些代码。
我已经通过以下链接提供了可以做什么的建议。
aws-gaining-ssh-access-to-an-ec2-instance-you-lost-access-to
我还有一个额外的限制,即系统的私有i / p地址不应该改变。我正在使用的软件之一使用系统私有i / p地址进行许可。目前我的实例只有一个卷,而且是根卷。
根据上面提到的链接,我需要分离我的卷并附加到其他实例。进行必要的访问更改。并重新连接到原始实例。 但是,由于我的情况下的卷是根卷,我需要停止实例然后分离它。如果我的理解是正确的,这可能会导致实例的私有i / p地址发生变化。
想知道是否有可以做的事情?或者按照链接中提到的步骤是唯一的方法,然后在实例重启时更新s / w许可证?
感谢
答案 0 :(得分:2)
我的建议是:
答案 1 :(得分:1)
我认为你有两个选择:
答案 2 :(得分:0)
注意:EC2实例的停止/启动将更改IP地址(只需读取OP需要IP保持不变)即可。
这对我适用于AWS EC2 Ubuntu 18.04。
ssh-rsa ...
公钥插入下面的脚本#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
#cloud-config
中的哈希之后插入空格cloud-init-per once
,但从来没有奏效,只是浪费了很多时间>>
而不是>
来添加密钥,而不是覆盖authorized_keys
文件。但是,如果您在之前的尝试中破坏了内容,那么您将永远不知道为什么它不起作用。ubuntu
用户:echo 'ssh-rsa ...' > /home/ubuntu/.ssh/authorized_keys
authorized_keys
文件。对于JumpCloud,您可以将脚本更改为写入echo 'ssh-rsa ...' > /home/ubuntu/.ssh/authorized_keys.jcorig
(JumpCloud包含该文件的内容)m_ec2.modifyInstanceAttribute(new ModifyInstanceAttributeRequest().withInstanceId("<instance-id>").withUserData(userdataBase64));