【发布时间】:2014-05-28 18:27:43
【问题描述】:
首先,我是 AWS 的新手(两天前开始研究它)。我的客户需要一个新的 Drupal 6 模块,我已经完成了,我只需要上传它并设置一些东西。我的客户给了我亚马逊的用户名和密码,所以我认为他们使用的是 AWS。
我可以看到正在运行的实例,并且我已经按照 Amazon 文档添加了一个新的密钥对,还添加了一个用于 SSH 访问的自定义 IP 规则。问题是,当我尝试使用非常简单且基本的命令通过 ssh 进行连接时
ssh -i taskey.pem ec2-user@ec-x-x-x-x...amazonaws.com
回复是
Permission denied (publickey).
我的环境状况:
- 与正在运行的实例关联的安全组上我的 IP 地址的现有 SSH 规则
- 已将新密钥对添加到正在运行的实例中
- key.pem 文件有 0600 权限
- 我知道这是一台 Centos 机器,因为当我 ping 站点的 IP 部分时,响应中显示它是。因此我使用用户名 ec2-user
- 以防万一,我也尝试过 ubuntu 和 root。
阅读一些内容,您似乎不能神奇地将新的密钥对添加到正在运行的实例中。我正在运行的实例有一个现有的公钥,但它是由另一个工作人员在过去创建的,我无法联系他们。
我的客户没有存储库,因此,正如您想象的那样,为什么我不只是尝试大量的东西。如果我打破它,一切都会丢失。
answer 建议删除旧的密钥对(我没有 .pem 文件的那个)。但我不知道这可能会带来什么后果。
对不起,我很着急,没有空间尝试。
提前致谢。
编辑
我选择了“创建 AMI...”的答案,只是因为它是我想要的答案。我喜欢可以保留(关闭)旧机器的事实,如果出现任何问题,我所要做的就是再次打开它。关于安装和卸载硬盘驱动器,我对另一个可能的答案投了赞成票,因为这是另一种方法,在某些情况下,也是唯一的方法。
实现SSH 访问成功的步骤:
- 停止运行实例
- 从中创建一个 AMI(右键单击并选择创建映像)
- 创建后,我启动它并为其提供与原始实例相同的细节
- 用我的新密钥对提供它
- 重新指向了我分配的弹性 IP(这是我拥有的唯一服务,幸运的是非常简单)。去了
弹性 IP,看到现有的(自原始 IP 以来不再分配任何东西) 实例被关闭。右键单击它并选择关联地址并选择新的运行 来自关联列表中创建的 AMI 的实例。) - 检查我有 SSH 访问权限。
【问题讨论】:
标签: amazon-web-services amazon-ec2