首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS EC2忘记密码,不能使用SSH

AWS EC2忘记密码,不能使用SSH
EN

Stack Overflow用户
提问于 2013-06-08 14:19:45
回答 4查看 15.9K关注 0票数 5

我有一个ec2-ubuntu实例。现在我忘了用户的密码。不幸的是,我还丢失了与putty一起使用的.pem文件和.ppk文件。很难进去。我想升级一下我的代码。

我已经通过以下链接,给出了什么可以做的建议。

  1. aws-gaining-ssh-access-to-an-ec2-instance-you-lost-access-to
  2. 添加键区到现有的-ec2-实例
  3. locked-myself-out-root-account-ec2-ubuntu-instance
  4. ec2-fix-ebs-root

我还有一个附加的约束,即系统的私有i/p地址不应该是我所使用的软件的change.One,它使用系统私有i/p地址作为许可证。目前,我的实例只有一个卷,是根卷。

基于上面提到的链接,我需要分离我的卷并附加到其他实例。为访问进行所需的更改。以及重新连接到原始实例。但是,由于我的情况下的卷是根卷,所以我需要停止实例,然后分离它。如果我的理解是正确的,这可能会导致私密的i/p地址的改变。

想知道是否有什么可以做的?或者遵循链接中提到的步骤是唯一的方法,然后在实例重新启动时更新s/w许可证?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2019-12-19 10:18:40

注意:停止/启动EC2实例将更改IP地址(只需阅读OP需要IP保持不变)。

这对我适用于AWS EC2 Ubuntu18.04。

  • 生成新的键盘(使用腻子键发生器或(如果匆忙)使用在线发电机)。
  • 将生成的ssh-rsa ...公钥插入下面的脚本
  • 停止实例
  • 将实例用户数据设置为此云init脚本
代码语言:javascript
运行
复制
#cloud-config
bootcmd:
 - echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
  • 启动实例
  • 试验连接
  • 再次停止实例并删除用户数据(您可能会忘记这样做)

注释和警告

  • AWS云init文档
  • 云init文档&示例
  • 在云init脚本中,空格似乎很重要,请抵制格式化的冲动,例如在#cloud-config中的散列后面插入一个空格。
  • 我摆弄cloud-init-per once,但一直没能用,只是浪费了很多时间。
  • 您可以使用>>而不是>来追加密钥,而不是覆盖authorized_keys文件。但是,如果您在以前的尝试中把内容搞砸了,您将永远不会知道为什么它不起作用。
  • 您可以更改脚本以按下任何用户的键,例如,对于默认的EC2 ubuntu用户:echo 'ssh-rsa ...' > /home/ubuntu/.ssh/authorized_keys
  • 注意已安装的关键旋转代理,如JumpCloud,这可能会覆盖authorized_keys文件。对于JumpCloud,您可以更改脚本以写入echo 'ssh-rsa ...' > /home/ubuntu/.ssh/authorized_keys.jcorig (JumpCloud包含该文件的内容)
  • Ubuntu必须配置为允许SSH连接(应该是默认的)
  • SSH端口需要打开(Ubuntu防火墙)
  • 实例的安全组(AWS防火墙)需要允许SSH端口和您的IP。
  • 整个过程可以自动化(停止、设置用户数据、启动、连接和修复、停止、清除用户数据、启动)。有趣的AWS命令是(Java客户机):
代码语言:javascript
运行
复制
m_ec2.modifyInstanceAttribute(new ModifyInstanceAttributeRequest().withInstanceId("<instance-id>").withUserData(userdataBase64));

票数 7
EN

Stack Overflow用户

发布于 2013-06-10 07:26:52

我的建议是:

  1. 对实例进行快照(创建一个AMI)。
  2. 使用该AMI启动一个新实例,并使用一个新的键/对。
  3. 使用弹性IP地址,这样下次就不会改变了。或者按照user1050134的建议使用VPC。
票数 6
EN

Stack Overflow用户

发布于 2013-06-11 09:43:10

我想你有两个选择:

  1. 创建一个实例的AMI,用一个新的键/对启动它,并附加一个弹性IP (推荐)。
  2. 或者,分离根卷,将其附加并挂载到另一个实例中,然后创建一个ssh键/对,并将公钥的内容复制到/home/ubuntu/.ssh/授权键文件中。最后,尝试使用新生成的私钥和ubuntu用户登录。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17000419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档