无法通过 SSH 连接到 Amazon EC2

J.Z*_*Zil 3 linux debian ssh amazon-ec2 amazon-web-services

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

  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 type -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: server->client aes128-ctr hmac-md5 none
  • debug1: kex: 客户端->服务器 aes128-ctr hmac-md5 无
  • debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) 发送
  • debug1:期待 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:没有更多的身份验证方法可以尝试。权限被拒绝(公钥)。

我尝试了一些不同的东西,谁能帮我找出我哪里出错了?

Lad*_*ada 9

很可能你在你的/etc/ssh/sshd_config

PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)

然而,这是一件好事。如果您想执行特权操作,您应该sudo使用sudo -s.

/var/log/auth.log在服务器上登录失败可能是有原因的。看起来您没有将公钥/root/.ssh/authorized_keys放在服务器上,这是 root 登录所需的位置。


埋在小字这里是珍品,默认用户是管理员,在Debian的AMI没有根。这就是亚马逊将放置与您下载的私钥匹配的公钥的地方。用这个:

ssh -i /Users/James/Documents/sshkeys/aws.pem admin@myec2ip
Run Code Online (Sandbox Code Playgroud)

默认用户ec2-user位于 Amazon AMI 和ubuntuUbuntu AMI 中。我不知道其他任何人。