为AWS EC2实例创建私钥

时间:2013-06-21 00:48:08

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

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

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

非常感谢!

P.S。我正在执行SSH到我的ec2实例的命令是:ssh -i /path/sshkey.pem ec2-user@ip.compute.amazonaws.com

1 个答案:

答案 0 :(得分:6)

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

  1. 使用密钥对#1
  2. 创建EC2实例
  3. 创建新密钥对(#2)
  4. 将新密码对#2中的私钥放在新笔记本电脑上
  5. 尝试登录实例。
  6. 如果这就是你所描述的,那么问题是密钥对#2的公钥从未安装在EC2实例上。您需要客户端上的私钥以及您要连接的服务器上的匹配公钥。

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

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