2013-05-10 20 views
3

我很新的EC2在這裏,我已經設置了今天的免費層下的所有東西。所以,我用(假設默認用戶ubuntu)loginto我EC2:亞馬遜ec2 sudoers文件 - Ubuntu的用戶要求輸入密碼

ssh -i ~/.ssh/mykeypaid.pem [email protected]<my ip address> 

現在,我已經編輯我的sudoers文件如下:

ubuntu ALL=(ALL:ALL) ALL 

,然後進行修改/etc/ssh/sshd_config如下:

Protocol 2 
PermitRootLogin no 
AuthorizedKeysFile %h/.ssh/authorized_keys 
PermitEmptyPasswords no 
PasswordAuthentication no 

現在,當我試圖回到並嘗試:

sudo su - 

我被問到一個ubuntu的密碼 - 我真的沒有。 我一直在試圖遵循here的指示,但我不確定時,他說他的意思:

Edit your ~/.ssh/authorized_keys and put your public key inside it. Make sure you can login without a password now once your key is in place.

我應該是什麼樣的公共密鑰包括在〜/ .ssh/authorized_keys的?當我看着~/.ssh/authorized_keys我已經看到按鍵開始

ssh-rsa ..... 

我將不勝感激任何意見進行排序這一點。現在,我無法返回到sudoers文件 - 因爲它要求我輸入密碼ubuntu,我認爲這很奇怪(?)

我應該終止我的實例並重新啓動嗎?謝謝。

回答

8

我已經編輯我的sudoers文件如下:
Ubuntu的ALL =(ALL:ALL)

沒有必要編輯在Ubuntu上EC2實例sudoers文件。它已經設置爲無密碼sudo /etc/sudoers.d/90-cloudimg-ubuntu

我應該終止我的實例並重新啓動嗎?

是的,基於你所說的話,我會建議從一個新的實例開始。通過編輯sudoers文件來爲沒有密碼的帳戶要求密碼,您已經有效地鎖定了自己。 (我已經寫了描述how to recover from a broken sudoers,但在你的情況下開始新的一篇文章要容易得多。

我應該是什麼樣的公共密鑰包括在〜/ .ssh/authorized_keys的?

您可以簡單地離開authorized_keys單獨和SSH在你首先做了同樣的方式,使用當您運行實例時指定的SSH密鑰。或者,您可以添加任何其他想要授予訪問權限的ssh密鑰,就像您在管理Linux機器時通常那樣。實例啓動後,沒有任何關於ssh密鑰管理的EC2特定功能。

通常,我建議上傳您的個人公共ssh密鑰到EC2,然後在啓動新實例時指定該名稱。這使得使用默認的ssh密鑰輕鬆地訪問新的實例。這裏是我寫的一篇文章:http://alestic.com/2010/10/ec2-ssh-keys

+0

非常感謝Eric對你非常有用的見解。你是對的 - 我以某種方式鎖定了自己(我仍然不確定如何!)sudoers文件 - 只是終止並重新啓動實例 - 按照你的指示,現在一切都工作得很好。關於這個話題的帖子肯定是有啓發性的!再次感謝 - 現在接受你的答案。 – AJW 2013-05-11 12:47:24

+0

我正在嘗試運行需要'sudo -v'的[installer](http://calibre-ebook.com/download_linux),但要求提供ubuntu AWS用戶沒有的密碼。我如何運行這個請求? – Chris 2015-06-17 14:31:22

+1

@Chris你可能會有更好的運氣,開啓一個關於你的設置和你看到的結果的更多細節的新問題。對於系統問題,你也可以嘗試serverfault.com – 2015-06-17 20:55:14