无法通过 SSH 进入 Amazon EC2

无法通过 SSH 进入 Amazon EC2

这是我的第一个 Amazon EC2 实例,但我遇到了困难,Google 无法帮助我。以下是我采取的步骤:

  1. 生成名为 aws 的密钥对
  2. 下载 aws.pem 并放入我的 /Users/Jim/Documents/sshkeys 文件夹
  3. 将文件和文件夹的 CHmod 设置为 700
  4. 从官方 Amazon Debian 6 AMI 创建实例
  5. 验证安全设置包括端口 22 上的 SSH(TCIP 22 (SSH) 0.0.0.0/0)
  6. 运行此命令:

ssh -v -i /Users/James/Documents/sshkeys/aws.pem root@myec2ip

这是我收到的消息:

  • OpenSSH_5.9p1,OpenSSL 0.9.8r 2011 年 2 月 8 日
  • debug1:读取配置数据/etc/ssh_config
  • debug1:/etc/ssh_config 第 20 行:应用选项 *
  • debug1:连接到myec2ip端口22。
  • debug1:连接已建立。
  • debug1:身份文件/Users/James/Documents/sshkeys/aws.pem 类型 -1
  • debug1:身份文件 /Users/James/Documents/sshkeys/aws.pem-cert 类型 -1
  • debug1:远程协议版本2.0,远程软件版本OpenSSH_5.5p1 Debian-6+squeeze3
  • debug1:匹配:OpenSSH_5.5p1 Debian-6+squeeze3 pat OpenSSH* debug1:启用协议 2.0 的兼容模式
  • debug1:本地版本字符串SSH-2.0-OpenSSH_5.9
  • debug1:SSH2_MSG_KEXINIT 已发送
  • debug1: 收到 SSH2_MSG_KEXINIT
  • debug1:kex:服务器->客户端aes128-ctr hmac-md5 none
  • debug1:kex:客户端->服务器aes128-ctr hmac-md5 none
  • debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) 已发送
  • 调试1:期望SSH2_MSG_KEX_DH_GEX_GROUP
  • debug1: SSH2_MSG_KEX_DH_GEX_INIT 已发送
  • debug1:期待 SSH2_MSG_KEX_DH_GEX_REPLY
  • debug1:服务器主机密钥:RSA ef:06:a0:a3:26:9f:c5:e7:c0:a6:0d:9a:1a:24:27:ef
  • debug1:主机“myec2ip”已知并且与 RSA 主机密钥匹配。
  • debug1:在 /Users/James/.ssh/known_hosts:6 中找到密钥
  • debug1:ssh_rsa_verify:签名正确
  • debug1: SSH2_MSG_NEWKEYS 已发送
  • debug1:期望 SSH2_MSG_NEWKEYS
  • debug1: 已收到 SSH2_MSG_NEWKEYS
  • debug1:服务器不允许漫游
  • debug1: SSH2_MSG_SERVICE_REQUEST 已发送
  • debug1: 已收到 SSH2_MSG_SERVICE_ACCEPT
  • debug1:可以继续的认证:publickey
  • debug1:下一个认证方法:publickey
  • debug1:尝试私钥:/Users/James/Documents/sshkeys/aws.pem
  • debug1:读取PEM私钥完成:输入RSA
  • debug1:可以继续的身份验证:publickey debug1:没有其他身份验证方法可以尝试。权限被拒绝(publickey)。

我尝试了几种不同的方法,有人能帮我找出问题所在吗?

答案1

最有可能的是,你的/etc/ssh/sshd_config

PermitRootLogin no

但这是一件好事。如果你想要执行特权操作,你应该使用 来执行,sudo或者至少使用 来启动 root shell sudo -s

服务器登录失败很可能是有原因的/var/log/auth.log。看起来你没有将公钥放在/root/.ssh/authorized_keys服务器上,而 root 需要将公钥放在服务器上才能登录。


埋在此处印有小字默认用户是行政,而不是 Debian AMI 中的 root。Amazon 将把与您下载的私钥相匹配的公钥放在那里。使用以下命令:

ssh -i /Users/James/Documents/sshkeys/aws.pem admin@myec2ip

默认用户ec2-user在 Amazon AMI 和ubuntuUbuntu AMI 中。我不知道其他用户。

答案2

尝试使用“ec2-user”而不是root。

[email protected]

pem 文件既是公钥又是私钥。因此,尝试使用 puttygen 将其保存为公钥。

答案3

  1. .pem随处下载文件
  2. chmod 400 file.pem
  3. ssh -i file.pem ec2-user@ip(Amazon AWS distrib)或admin@ip在 LInux 系统上。

相关内容