Linux

無法通過 SSH 連接到 Amazon EC2

  • June 9, 2015

這是我的第一個 Amazon EC2 實例,但我遇到了困難,Google無法幫助我。這些是我採取的步驟:

  1. 生成一個名為 aws 的密鑰對
  2. 下載 aws.pem 並放入我的 /Users/Jim/Documents/sshkeys 文件夾
  3. 將文件和文件夾都修改為 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 type -1
  • debug1:身份文件/Users/James/Documents/sshkeys/aws.pem-cert type -1
  • debug1:遠端協議版本2.0,遠端軟體版本OpenSSH_5.5p1 Debian-6+squeeze3
  • debug1: match: 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
  • 調試1:kex:伺服器->客戶端aes128-ctr hmac-md5無
  • 調試1: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:沒有更多的身份驗證方法可以嘗試。權限被拒絕(公鑰)。

我已經嘗試了一些不同的東西,誰能幫我找出我哪裡出錯了?

很可能您的/etc/ssh/sshd_config:

PermitRootLogin no

然而,這是一件好事。如果您想執行特權操作,您應該使用sudo或至少使用sudo -s.

/var/log/auth.log在伺服器上登錄失敗可能是有原因的。看起來您沒有將公鑰/root/.ssh/authorized_keys放在伺服器上,而這是 root 登錄所需的位置。


這裡隱藏在細則中的是預設使用者是admin,而不是 Debian AMI 中的 root 。這就是亞馬遜將與您下載的私鑰匹配的公鑰放置的地方。用這個:

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

預設使用者ec2-user位於 Amazon AMI 和ubuntuUbuntu AMI 中。我不知道其他人。

引用自:https://serverfault.com/questions/488495