2

目前,我已将一台计算机正确设置为通过 SSH 连接到我的 EC2 实例,但是我也在尝试连接另一台笔记本电脑。当我去 AWS 控制台下载另一个密钥对并在终端中使用它到 SSH 时,我收到此错误:权限被拒绝(公钥)。

我已经尝试执行该命令chmod 400 /path/sshkey.pem,但仍然收到公钥错误。有人知道这是为什么吗?

非常感谢!

ps 我对我的 ec2 实例执行 SSH 的命令是:ssh -i /path/sshkey.pem ec2-user@ip.compute.amazonaws.com

4

1 回答 1

6

我对这里的情况并不完全清楚,但我想你是说你按这个顺序做事:

  1. 使用密钥对 #1 创建 EC2 实例
  2. 创建一个新的密钥对(#2)
  3. 将密钥对 #2 中的私钥放在新笔记本电脑上
  4. 尝试登录实例。

如果这就是您所描述的,那么问题是密钥对#2 的公钥从未安装在 EC2 实例上。您需要客户端上的私钥,以及要连接的服务器上的匹配公钥。

一旦实例已经存在,在 AWS 中创建新的密钥对将不会更新现有实例上的密钥。您必须登录它(使用密钥对#1),并将新的公钥放在适当的位置。

我自己已经有一段时间没有这样做了,但是根据这个页面,您将编辑~ec2-user/.ssh/authorized_keys(一个文本文件)并将您的密钥对(也是文本格式)中的公钥附加到末尾文件。您可能必须重新启动sshd该命令sudo /sbin/service sshd restart应该执行的守护程序。但请先尝试使用新密钥登录;如果您在编辑文件时出错,您可能会将自己锁定。(创建一个新帐户并更新它会更安全,.ssh/authorized_keys以避免错误地锁定 ec2-user 帐户。)

于 2013-06-21T02:33:17.510 回答