【问题标题】:Connecting AWS EC2 instance asks for password although PEM file is provided [closed]尽管提供了 PEM 文件,但连接 AWS EC2 实例仍要求输入密码 [关闭]
【发布时间】:2013-03-10 16:44:31
【问题描述】:

我刚刚在 AWS 上创建了一个 EC2 实例。在此之前,我创建了我的密钥对,下载了私钥。

我现在正尝试登录到新创建的实例(使用正确的主机名,当然,我在此处替换的内容是为了安全起见)。我添加了 -v 开关来获取调试输出:

ssh ec2-user@myVirtualHost.compute-1.amazonaws.com -i ~/EC2key.pem -v

虽然我提供了密钥文件,但我被要求输入密码。以下是调试输出的摘录,可能显示出了什么问题:

debug1: Host 'myVirtualHost.compute-1.amazonaws.com' is known and matches the ECDSA host key.
debug1: Found key in /home/myuser/.ssh/known_hosts:15
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/myuser/EC2key.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
ec2-user@myVirtualHost.compute-1.amazonaws.com's password:[asks for password here]

为什么在“read PEM private key done: type RSA”之后的结论是“Authentications that can continue: publickey,password”?

【问题讨论】:

标签: security amazon-web-services amazon-ec2


【解决方案1】:

我很高兴也很谦虚地报告问题是我试图与不存在的用户进行 ssh。我遵循的教程建议使用与相应 AMI 中的用户名不对应的登录名。这是亚马逊支持人员在仔细检查他们的教程时提出的建议。

我不确定是否有办法从 EC2 管理控制台发现默认登录名。至少在属性中快速搜索正确的用户名没有找到任何匹配项。

现在我也可以通过 -i 选项在不提供密钥文件的情况下登录,因为我已使用 ssh-add 命令将密钥添加到我的密钥环中。

【讨论】:

【解决方案2】:

您是否尝试在 Keyring 中添加密码?

去扔这篇文章

http://aws.amazon.com/articles/1233

# vi /etc/ssh/sshd_config

找线 PasswordAuthentication yes

并将其更改为 PasswordAuthentication no

保存文件并重新启动 sshd: # /etc/init.d/sshd restart

【讨论】:

  • 是的,它仍然要求输入密码。不过,调试输出略有不同:debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Offering RSA public key: /home/myuser/EC2key.pem debug1: Authentications that can continue: publickey,password
  • 对不起,我不知道没有办法在评论文本中添加换行符。
  • keyring 应该可以工作,这里有一篇文章应该可以帮到你aws.amazon.com/articles/1233
  • 这样做将我锁定在我的实例之外,直到我明确运行 ssh -i "path/to/pem_file" my.instance
【解决方案3】:

嗯,就失败的原因而言,这可能是客户端或服务器端。

客户端:确保您的 .ssh 目录权限为 0700,EC2key.pem 为 0600。

服务器端:确保在您的 sshd_config 中将“PubkeyAuthentication”设置为“yes”(如果您能够进入的话)。您还可以使用调试模式(-d 标志)手动运行 SSH 服务以捕获其他潜在原因(同样,如果您有权访问)。

【讨论】:

  • 我的 ~/.ssh 目录权限是 drwx------,而 pem 文件权限是 -rw-------,所以我猜这与您提到的 0700 和 0600 相匹配。但我没有任何办法进入服务器端。使用密钥文件的应该是最初的方式。
  • 谁创建了您用于实例的 AMI?他们的配置完全有可能无法正常工作。如果您使用的是“官方”AMI,或者直接来自亚马逊,它应该可以正常工作。
  • 我关注了directions from here,我正在参加 Udacity 的 CUDA 课程。因此,AMI 是从所谓的官方模板生成的。
  • 我明白了。好吧,我想最后一个想法只是与他们交谈以验证没有其他人遇到这个问题。如果您的密钥实际上是您创建并分配给实例的密钥,那么您的本地文件的权限是正确的,那么在您有可以直接访问该 AMI 的人之前,我想不出太多的测试。对不起!
  • 感谢您的尝试 :) 当(如果)我修复它时,我会向这个帖子报告。
猜你喜欢
  • 2021-07-19
  • 2021-02-08
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2016-05-23
  • 1970-01-01
相关资源
最近更新 更多