2013-06-21 146 views
1

目前我有一臺計算機正確設置爲SSH到我的EC2實例,但是我試圖連接另一臺筆記本電腦。當我前往AWS控制檯下載另一個密鑰對並在終端中將其用於SSH時,出現此錯誤:Permission denied(publickey)(公鑰)。創建AWS EC2實例的私鑰

我已經嘗試執行命令chmod 400 /path/sshkey.pem但我仍然得到一個公鑰錯誤。有人知道這是爲什麼嗎?

非常感謝!

p.s.我執行到SSH到我的EC2實例的命令是:ssh -i /path/sshkey.pem [email protected]

+0

此外,我在一個mac sshing到一個linux EC2 – Apollo

回答

5

我不是這裏的情況完全清楚,但我覺得你說你做這個事情順序:

  1. 用密鑰對#1
  2. 創建一個新的密鑰對創建一個EC2實例(#2)
  3. 把私鑰從密鑰對#2的新的筆記本電腦
  4. 嘗試登錄到該實例。

如果這就是你所描述的,那麼問題在於EC2實例上從未安裝過密鑰對#2的公鑰。您需要客戶端上的私鑰以及要連接的服務器上的匹配公鑰。

一旦實例已經存在,在AWS中創建新的密鑰對將不會更新現有實例上的密鑰。你必須登錄到它(使用密鑰對#1),並將新的公鑰放在適當的位置。

我自己有一段時間沒有這樣做,但根據this page,您需要編輯~ec2-user/.ssh/authorized_keys(一個文本文件),並將密鑰對(也是文本格式)中的公鑰添加到文件的結尾。您可能必須重新啓動sshd守護程序,該命令sudo /sbin/service sshd restart應該執行此操作。但請先嚐試使用新密鑰登錄;如果你編輯文件時出錯,你可以鎖定自己。 (創建一個新帳戶並更新其.ssh/authorized_keys以避免錯誤地鎖定ec2用戶帳戶比較安全)。

+0

這正是問題,但我仍然不太瞭解你的解決方案。當我在舊筆記本電腦上使用密鑰對1登錄我的實例時,您能解釋我從那裏做了什麼嗎?非常感謝! – Apollo

+0

好吧,爲了安全起見,我會先創建一個新帳戶,然後將該密鑰與該帳戶相關聯。如果我可以用它登錄,我會更新一個用於ec2用戶的。當我今天晚些時候有機會時,我會更詳細地編輯我的答案。 –