2011-01-28 135 views
72

這似乎是一個常見問題,但我的具體情況似乎有點不同。Amazon EC2 Permission denied(publickey)

我使用命令行工具設置了一個新的Amazon EC2實例,並通過SSH連接並執行了一些配置工作。

但是,最初,我不能ssh到實例,我不得不停止並重新啓動實例,然後我可以連接。在重新開始之前,我剛剛得到了答覆。

Permission denied (publickey). 

這是昨天晚上,今天早上我回到同一個實例,現在我得到的是

Permission denied (publickey). 

我已經試過沒有快樂重啓實例。

任何人都可以在正確的方向指向我嗎?昨晚工作的命令不再有效,我從Macbook Pro連接。

回答

75

我要回答的情況下,其他人我自己的問題看到了同樣的事情......昨天晚上我做了:

ssh-add ~/.ssh/[keypair name] 

然後被連接用:

ssh [email protected][ec2 instance ip] 

這早上我試了一樣,無法連接。但這樣做

ssh -i ~/.ssh/[keypair name] [email protected][ec2 instance ip] 

得到我。

的密鑰對使用ssh-add再次打動了我。我猜ssh-add只有我會發出它在殼體內的工作。當我關閉了終端窗口,並打開另一個我不再有沒有明確的密鑰對可用。

+8

感謝的人,一直忘記使用「ec2用戶」的一部分和返回的錯誤消息是不是很有關該錯誤信息 – pulkitsinghal 2012-02-26 04:01:16

+20

如果是Ubuntu實例,請使用ssh -i〜/ .ssh/[keypair name] ** ubuntu ** @ [ec2 instance ip] – 2014-01-13 21:02:33

+0

Elastic Map Reduce cluster - > hadoop @ [ec2 instance ip] – craastad 2014-04-09 09:57:27

14

我遇到了類似的問題,它證明是在主文件夾的權限。值得慶幸的是我還有另一個現有的SSH連接打開,以便我能檢查日誌的EC2實例:

$ sudo的少的/ var /日誌/安全

其中包含:

Dec 9 05:58:20 ... sshd[29816]: Authentication refused: 
    bad ownership or modes for directory /home/ec2-user 

這固定通過發出命令:

$搭配chmod OG-RWX /家庭/ EC2用戶

我希望這可以幫助了別人。

12

請注意,重新啓動實例後,dns名稱已更改。我倒了好幾次。密鑰文件仍然有效,但「服務器名稱」已更改。

1

確保您的私鑰路徑正確。

如果你的SSH客戶端找不到你要提供的私鑰,奇怪的是它不會給你一個錯誤!它只是不會使用該密鑰。它將使用你在.ssh/id_dsa和.ssh/id_ecdsa下的任何密鑰,這當然會使公鑰驗證昏迷。

28

這是發生在我身上,因爲我沒有使用正確的用戶名。我在使用教程中使用的AMI時能夠登錄,但是當我試圖使用不同的AMI(Bitnami的ubuntu + LAMP)時,我會得到Permission denied (public key).錯誤。我終於意識到,如果我將教程ami的用戶名從ubuntu更改爲ec2-user,我會得到相同的錯誤。

因此,快速谷歌告訴用戶Bitnami AMIs的用戶名是bitnami。問題解決了。

3

謝謝!

我真的很欣賞@特雷弗的答案在這裏。我現在要添加這個小技巧來避免將來出現這個問題。

便利

因爲你要創建一個不同的密鑰對每一個可用性區域,它變得相當麻煩來管理所有這些,使用它們的命令。隨着~/.ssh/config我的ssh命令,正確的安裝是非常簡單:

ssh ec2-52-10-20-30.us-west-2.compute.amazonaws.com 

這是在美西2可用性區域中的服務器的完整公共DNS。正確的用戶名和密鑰選擇,因爲這樣的:

## ~/.ssh/config 

Host *.us-west-2.compute.amazonaws.com 
    User ec2-user 
    IdentityFile ~/.ssh/bruno-bronosky-aws-us-west-2.pem 
0

我花了一整天的答案搜索互聯網。我的問題完全一樣。我擺弄許可問題,來回改變,但沒有解決我的問題。 使用新密鑰測試並開始/終止一對實例後,最後我發現它必須在不同地區使用相同的密鑰名稱。

這是「權限被拒絕(公鑰)」怎麼發生的對我說:
1.按照練習冊,選擇美國東-1作爲默認區域
2.創建一個鍵名「的myKey」
通過下面的例子來探索AWS世界。
4.有一天,嘗試測試悉尼區的速度,默認開啓到悉尼區。
5.創建另一個密鑰,將其命名爲「mykey」,而不用考慮,但不要用它通過cli連接數天。
6.嘗試使用cli連接到AWS。
7.得到「權限被拒絕(公鑰)」。
8.花了很多時間來調試SSH問題,直到我注意到鍵/區域問題。

希望這可以幫助像我這樣的新手。

爲了避免這個問題,我認爲命名密鑰的最佳做法是在其中附加一個區域。

0

我還收到:Permission denied。

我用:

ssh -v -i ~/.ssh/pemfile [email protected] 

和反應是:

debug1: No more authentication methods to try. 

輸入以下命令:

ssh-add -l 

但反應是空

所以,我覺得筆文件是這樣的對格式錯誤。 接下來,我找到了從ec2 web下載的筆文件,並將其移動過來。在此之前,我創建了一個新的文件,並解析從下載PEM文件文本目錄「的.ssh」,則:

ssh-add filename 

這是成功的。

1

如果EC2實例使用Ubuntu ami 14.04。嘗試在EC2實例ip之前添加'ubuntu @'。

ssh -i [key name] [email protected][EC2 instance ip] 
0

我將權限更改爲600,儘管pem文件的權限已經是644。這工作:p希望它可以幫助

相關問題