尝试从其他计算机访问 ec2 时 ssh 权限被拒绝(公钥)

Posted

技术标签:

【中文标题】尝试从其他计算机访问 ec2 时 ssh 权限被拒绝(公钥)【英文标题】:ssh permission denied (publickey) when trying to access ec2 from different computer 【发布时间】:2012-06-25 00:22:13 【问题描述】:

我正在尝试使用另一台 (mac) 计算机访问 ec2 实例。为此,我创建了一个新的密钥对,使用 chmod 600 设置权限,然后使用 ssh-add。当我尝试 ssh 进入我的 ec2 实例时,我得到“权限被拒绝(公钥)”。我确定我的错误是愚蠢而简单的,但我似乎找不到它,任何人都可以帮助我吗?

【问题讨论】:

【参考方案1】:

您需要确保将 Mac 中的 ~/.ssh/id_rsa.pub(如果它是 RSA 密钥)附加到目标计算机上的 ~/.ssh/authorized_keys 文件中。通常,如果这是默认的 Amazon API,则用户是“ec2-user” -- ~ec2-user/.ssh/authorized_keys

记住要追加,不要删除该文件中的其他条目——否则,您可能会将自己锁定在该机器之外......

【讨论】:

我认为我应该自动附加到文件中,因为我使用 aws 管理控制台创建了密钥对?还是我误解了你的建议? 您需要将生成的公钥持久化到实例中。很容易检查。查看“authorized_keys”,看看你的mac上生成的“pub”是否被复制进去了。 哦,我明白了。我错了。不幸的是,我尝试这样做的全部原因是我目前无法访问我的旧密钥,所以我无法登录这样做。但是感谢您帮助我解决问题【参考方案2】:

您的私钥在新计算机上吗?

你需要把它放在你使用 ssh 的计算机上。我通常把我的放在闪存驱动器上……我没有运行 linux atm,所以我忘记了它检查的默认目录。也许这会唤起你的一些记忆。我认为该目录会像 ~/.id_rsa/ 之类的?

【讨论】:

私钥在新电脑上,我不认为是位置问题?虽然我可能是错的 - 我对这个过程中发生的事情并没有真正深入的了解 您需要拥有原始私钥,除非您的 ec2 实例获得公钥副本,否则您无法制作新私钥。本质上,这是一个握手过程,表明你就是你所说的那个人。如您所知,密钥是安全的(足够)并且具有匹配的对。关键是公钥在你想要的服务器上,然后你的私钥将通过一些加密选项算法进行比较。如果您在 ec2 实例上没有与 public 匹配的私钥,则需要更改公钥。 谢谢。我在想,当我创建新密钥时,aws 会自动将它链接到我的实例,但事实并非如此,我不知道为什么我会这样认为

以上是关于尝试从其他计算机访问 ec2 时 ssh 权限被拒绝(公钥)的主要内容,如果未能解决你的问题,请参考以下文章

ssh - Amazon EC2 上的权限被拒绝(公钥)

如何在 Amazon EC2 实例中启用根 SSH 访问?

在 Mac OSx 上通过 SSH 连接到 EC2 时出现权限错误

如何在没有 PEM 密钥的情况下通过 ssh 进入 EC2 实例?

允许用户通过 ssh 访问 EC2 Ubuntu 实例?

将密钥对添加到现有 EC2 实例