2013-06-21 148 views
1

目前我有一台计算机正确设置为SSH到我的EC2实例,但是我试图连接另一台笔记本电脑。当我前往AWS控制台下载另一个密钥对并在终端中将其用于SSH时,出现此错误:Permission denied(publickey)(公钥)。创建AWS EC2实例的私钥

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

非常感谢!

p.s.我执行到SSH到我的EC2实例的命令是:ssh -i /path/sshkey.pem [email protected]

+0

此外,我在一个mac sshing到一个linux EC2 – Apollo

回答

5

我不是这里的情况完全清楚,但我觉得你说你做这个事情顺序:

  1. 用密钥对#1
  2. 创建一个新的密钥对创建一个EC2实例(#2)
  3. 把私钥从密钥对#2的新的笔记本电脑
  4. 尝试登录到该实例。

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

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

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

+0

这正是问题,但我仍然不太了解你的解决方案。当我在旧笔记本电脑上使用密钥对1登录我的实例时,您能解释我从那里做了什么吗?非常感谢! – Apollo

+0

好吧,为了安全起见,我会先创建一个新帐户,然后将该密钥与该帐户相关联。如果我可以用它登录,我会更新一个用于ec2用户的。当我今天晚些时候有机会时,我会更详细地编辑我的答案。 –