首先,我是AWS的新生儿(两天前开始研究它)。我的客户需要一个新的Drupal 6模块,我已经完成了,我只需要上传它并设置一些东西。我的客户给了我一个亚马逊的用户名和密码,所以我认为他们使用的是AWS。
我可以看到正在运行的实例,我已经按照Amazon文档添加了一个新的密钥对,并为SSH访问添加了一个自定义IP规则。问题是,当我尝试通过ssh连接一个非常简单和基本的命令
ssh -i taskey.pem ec2-user@ec-x-x-x-x...amazonaws.com
响应是
Permission denied (publickey).
我环境的问题:
阅读一些内容,似乎你不能只是神奇地将新的密钥对添加到正在运行的实例中。我的运行实例有一个现有的公钥,但它是由另一个工人在过去创建的,我无法联系他们。
我的客户端没有存储库,因此,正如您可以想象的那样,为什么我不只是尝试大量的事情。如果我打破它,一切都会迷失。
这个answer建议删除旧密钥对(我没有.pem文件)。但我不知道这会带来什么后果。
很抱歉这样的小说,但我很匆忙,没有空间去尝试。
提前致谢。
修改
我选择了“创建一个AMI ......”的答案,因为这是我选择的那个。我喜欢旧机器可以保持(关闭)的事实,如果出现任何问题,我只需要再打开它。关于安装和卸载硬盘驱动器,我最后选择了另一个可能的答案,因为这是另一种方式,在某些情况下,这是唯一的方法。
实现 SSH成功访问 的步骤:
答案 0 :(得分:2)
您无法向正在运行的实例添加新密钥对 - 就像您在指向的答案comments中所说的那样。
我担心如果您无法联系拥有原始.pem
文件的人,您将无法通过SSH连接到该计算机。
您可以从中创建AMI
图片,并使用新密钥对从AMI
创建新计算机。在那里,您可以进行所需的所有更改,然后将使用它的任何服务指向新计算机。验证新机器达到标准后,您可以终止旧机器。
答案 1 :(得分:1)
亚马逊提供了在您丢失私钥时连接到实例的指南。只要它是EBS支持的实例。见这里:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
这样做的一般程序是(来自文档):
您必须停止实例,分离其根卷并将其作为数据卷附加到另一个实例,修改authorized_keys文件,将卷移回原始实例,然后重新启动实例。