无法连接到Amazon EC2

这是我的第一个亚马逊EC2实例,但我很困难,谷歌无法帮助我。 这些是我采取的步骤:

  1. 生成一个名为aws的密钥对
  2. 下载aws.pem并放入我的/ Users / Jim / Documents / sshkeys文件夹
  3. CHmod文件和文件夹为700
  4. 从官方的Amazon Debian 6 AMI创build一个实例
  5. validation安全设置包括端口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:读取configuration数据/ etc / ssh_config
  • debug1:/ etc / ssh_config第20行:应用选项*
  • debug1:连接到myec2ip端口22。
  • debug1:build立连接。
  • debug1:身份文件/Users/James/Documents/sshkeys/aws.pemtypes-1
  • debug1:身份文件/Users/James/Documents/sshkeys/aws.pem-certtypes-1
  • debug1:远程协议版本2.0,远程软件版本OpenSSH_5.5p1 Debian-6 + squeeze3
  • debug1:match:OpenSSH_5.5p1 Debian-6 + squeeze3 pat OpenSSH * debug1:为协议2.0启用兼容模式
  • debug1:本地版本stringSSH-2.0-OpenSSH_5.9
  • debug1:发送SSH2_MSG_KEXINIT
  • debugging1:收到SSH2_MSG_KEXINIT
  • debug1:kex:server-> client aes128-ctr hmac-md5 none
  • debug1:kex:client-> server aes128-ctr hmac-md5 none
  • 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:find/Users/James/.ssh/known_hosts:6中的键
  • debug1:ssh_rsa_verify:签名正确
  • debug1:发送了SSH2_MSG_NEWKEYS
  • debug1:期待SSH2_MSG_NEWKEYS
  • debug1:收到SSH2_MSG_NEWKEYS
  • debug1:服务器不允许漫游
  • debugging1:发送了SSH2_MSG_SERVICE_REQUEST
  • debug1:收到SSH2_MSG_SERVICE_ACCEPT
  • debug1:可以继续的身份validation:publickey
  • debug1:下一个validation方法:publickey
  • debug1:尝试私钥:/Users/James/Documents/sshkeys/aws.pem
  • debug1:读取完成的PEM私钥:键入RSA
  • debug1:可以继续的身份validation:publickey debug1:没有更多的身份validation方法可以尝试。 权限被拒绝(publickey)。

我已经尝试了几个不同的东西,任何人都可以帮我弄清楚我哪里错了吗?

很有可能你在你的/etc/ssh/sshd_config有这个:

 PermitRootLogin no 

不过,这是一件好事。 如果你想执行特权操作,你应该用sudo来做,或者至less用sudo -s启动一个root shell。

服务器上的/var/log/auth.loglogin失败可能是有原因的。 它看起来不像你把/root/.ssh/authorized_keys放在你的服务器上的/root/.ssh/authorized_keys ,这是root用来login的地方。


埋在这里的精美的打印是默认用户是admin的titbit,而不是Debian AMI的root。 这就是亚马逊将把公钥与您下载的私钥相匹配的地方。 用这个:

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

默认用户是Amazon AMI中的ec2-user和Ubuntu AMI中的ubuntu。 我不知道其他人。

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

 [email protected] 

而且pem文件是公钥和私钥。 所以,尝试使用puttygen将其保存为公钥。

  1. 在任何地方下载.pem文件
  2. chmod 400 file.pem
  3. 在LInux系统上的ssh -i file.pem ec2-user@ip (Amazon AWS distrib)或admin@ip