2010-02-01 86 views
23

我是EC2的新手。我創建了這個網站我的安全證書:在Mac OSx上通過SSH連接到EC2時發生權限錯誤

http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2

這偉大的工作,我重新啓動,現在當我嘗試連接,我得到一個登錄/密碼提示。 (我從來沒有設置。)經過多次嘗試,我得到這個錯誤:

權限被拒絕(公鑰,gssapi與麥克風)。

我在做什麼錯?

+0

幫助!有什麼想法嗎? – 2010-02-01 21:34:44

回答

52

兩種可能性,我能想到的,雖然他們都在鏈接中提到您參考:

  1. 你不是在指定ssh命令正確的SSH密鑰對文件或用戶名,您正在使用登錄到服務器:

    的ssh -i [完整路徑密鑰對文件]根@ [EC2實例的主機名或IP地址]

  2. 您沒有對密鑰對文件的正確權限;你應該使用

    搭配chmod 600密鑰對文件]

,以確保只有您可以讀取或寫入文件。

嘗試在ssh中使用-v選項以獲取有關其失敗的更多信息,如果您想獲得更多幫助,請在此處發帖。

[更新]:好了,這是你如果一切都設置正確,應該已經看到了:

debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: Next authentication method: publickey 
debug1: Trying private key: ec2-keypair 
debug1: read PEM private key done: type RSA 
debug1: Authentication succeeded (publickey). 

是否運行從包含的EC2密鑰對文件的目錄ssh命令?如果是這樣,請嘗試指定-i ./ec2-keypair來消除路徑問題。同時檢查「ls -l [ec2-keypair的完整路徑]」文件並確保權限爲600(顯示爲rw -------)。如果這些都不起作用,我會懷疑密鑰對文件的內容,所以請嘗試使用鏈接中的步驟重新創建它。

+0

下面是有關錯誤的具體信息: DEBUG1:身份驗證,可以繼續:公鑰,GSSAPI與 - 麥克風 DEBUG1:下一個驗證方法:公鑰 DEBUG1:試圖私鑰:EC2-密鑰對 DEBUG1:讀PEM私人鍵完成:鍵入RSA debug1:可以繼續的身份驗證:publickey,gssapi-with-mic debug1:沒有更多身份驗證方法可供嘗試。 權限被拒絕(publickey,gssapi-with-mic)。 – 2010-02-01 20:45:28

+0

我編輯了我的答案以添加更多信息,因爲沒有空間將它放入新評論中。 – 2010-02-01 23:49:11

+0

我檢查過。我有兩個keypairs爲一個網站和另一個網站的另一個。我可以使用在另一個實例上沒有問題的相同密鑰對。這個問題是否可以用這個特定的實例?感謝您的幫助。 – 2010-02-02 02:21:38

14

我能夠連接的關鍵是使用「ec2-user」用戶而不是root用戶。 I.e .:

ssh -i [full path to keypair file] [email protected][EC2 instance hostname or IP address] 
+1

+1我一直有這個問題,直到我將用戶從ec2user切換到ec2-user建議。 – 2010-11-26 14:42:23

+2

根據所使用的AMI/Linux的迪士通,對SSH命令行正確的用戶名可以是根,Ubuntu的,EC2用戶或也許其他人。 – 2013-06-18 21:08:50

3

您確定您使用了正確的實例嗎?我遇到了這個問題,並意識到像我嘗試的4個ubuntu實例沒有安裝SSH服務器。

有關優質服務器的列表,請參閱「獲取圖像」大約一半的時間。聽起來你可能正在使用其他的東西......默認的用戶名是Ubuntu的這些圖像。

https://help.ubuntu.com/community/EC2StartersGuide

+0

用戶名「Ubuntu的」修復它爲我 – samuelsaumanchan 2013-01-13 05:29:48

0

如果你有一個PPK文件在電腦上工作,那麼它使用puttygen.exe導出爲文件的OpenSSH的PC,並使用在Mac(任何Unix機器)。

我得到了同樣的錯誤 -

debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: Next authentication method: publickey 
debug1: Trying private key: ec2-keypair 
debug1: read PEM private key done: type RSA 
debug1: Authentications that can continue: publickey,gssapi-with-mic 
debug1: No more authentication methods to try. 
Permission denied (publickey,gssapi-with-mic) 

當我在Windows上使用PPK文件,我跟着上面和賓果所描述的步驟!

$的ssh -i EC2-的openssh-關鍵的根@ EC2實例-IP

5

對我來說,那是因爲我的主目錄權限爲775,和SSH是很不高興。它應該在執行後工作:

server$ chmod go-w ~/ 
server$ chmod 700 ~/.ssh 
server$ chmod 600 ~/.ssh/authorized_keys 

我今天下午的體驗非常相似。我在EC2上設置了django,突然間我無法再通過SSH進入盒子。很高興我仍然有活動的連接,所以我修改/etc/ssh/sshd_config設置:

PasswordAuthentication yes 

ec2-user設置密碼,那麼我可以通過輸入密碼登錄。

但是,一些谷歌搜索後,我發現這個線程:http://ubuntuforums.org/showthread.php?t=577279。事實證明,在我設置django的過程中,我更改了主目錄的權限,SSH對此非常嚴格。所以文件權限必須正確設置。

+0

「原來,我的Django的安裝過程中,我改變了許可,我的主目錄,SSH是非常嚴格的。」我在看到這個提示時遇到了這個相同的問題,我試了一下,只是爲了它的地獄和事情的工作! !@#$%除了.ssh /之外,爲什麼主目錄還需要爲700。這並不是說它使得它更安全。 – aqn 2017-04-27 16:36:51

2

我可以使用EC2用戶

的ssh -i [完整路徑密鑰對文件]登錄EC2用戶@ [EC2實例的主機名或IP地址]

4

標記上mecca831的回答是:

SSH -v -i生成-key.pem [email protected]

[[email protected]〜] $須藤passwd的EC2用戶 新密碼 新密碼

[[email protected]〜] $ sudo的VI的/ etc/SSH/sshd_config中 修改該文件,如下所示:

# To disable tunneled clear text passwords, change to no here! 
    PasswordAuthentication yes 
    #PermitEmptyPasswords no 
    # EC2 uses keys for remote access 
    #PasswordAuthentication no 

保存

[EC2用戶@ IP- 11.11.11.11〜] $ sudo的服務的sshd停止 [[email protected]〜] $ sudo的服務sshd的啓動

你應該能夠退出和SSH在如下:

ssh [email protected] 

並被提示輸入密碼,不再需要密鑰。

1

以上都沒有幫助過我,但與用戶打交道似乎很有希望。對於使用「Ubuntu的是對的.....

的ssh -i [完整路徑密鑰對文件]我的配置Ubuntu的@ EC2實例的主機名或IP地址]

0

我不得不使用AWS同樣的問題Eclipse工具包。我創建了入門實例確定並打開了一個shell。但是,該用戶被設置爲ec2用戶。我使用了Open Shell As ...命令並將用戶設置爲root。然後它工作。

1

經過大約半小時的搜索和嘗試調試,我才弄明白了。我的情況涉及到使用兩個不同的ec2實例的同一個pem文件,並且它爲一個而不是另一個工作。

我的第一個實例是標準aws linux ami amzn-ami-hvm-2014.03.2.x86_64-ebs。我只是使用

ssh -i mypemfile.pem [email protected] 

它的工作。

接着我就推出一個Fedora實例的Fedora-x86_64-19-20140407-SDA和嘗試同樣的命令,但一直得到:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 

從EC2用戶改變我的用戶名到Fedora它的工作後!

​​
1

我建議不要設置密碼,因爲一些其他答案建議。使用密鑰文件更安全(沒有人可以猜到你的密碼),更方便(一旦你建立了一個配置文件)。這是一個基本~/.ssh/config

Host my-ec2-server 
    HostName 11.11.11.11 
    User ec2-user 
    IdentityFile /path/to/generated-key.pem 

現在,您只需鍵入ssh my-ec2-server和你是!正如其他答案中所述,使用-v可以在連接不工作時獲得額外的信息。

2

+1

我注意到,對於像Amazon Linux的一些的AMI,[email protected]會工作。但對於Ubuntu的映像,我不得不使用ubuntu @來代替。這對於.pem來說從來都不是問題,只是用戶名。

+0

我遇到了使用正確的默認用戶名解決的相同問題。我的ec2實例是Red Hat Linux,用戶名是雲使用。所以ssh -i /path/to/key.pem cloud-user @工作。 – Stuart 2015-09-14 11:12:10

3

我遇到了這個問題too.And我發現happend怎麼一回事,因爲我忘了主機名前添加一個用戶名: 這樣的:

ssh -i test.pem ec2-32-122-42-91.us-west-2.compute.amazonaws.com 

,我添加用戶名:

ssh -i test.pem [email protected] 

它的工作原理!

相關問題