2016-07-06 93 views
3

我試圖組織開發人員如何通過SSH連接到我以管理員身份啓動的AWS實例。我注意到它在文檔中提到:多位用戶通過SSH連接到AWS EC2

您需要啓動實例時指定的密鑰對的.pem文件的完全限定路徑。

這是否意味着只能SSH進入一個已啓動的實例?我想讓實例運行並讓其他人能夠通過SSH進入安裝軟件和配置。

回答

3

下面是如何將新的用戶/開發人員增加了一個Amazon EC2 Linux實例,並給他們獨特的SSH密鑰訪問:

假設你正在創建「用戶」:通過輸入以下內容來創建你自己的機器上的一個鍵:

ssh -keygen -b 1024 -f user -t dsa 

請勿使用釋義 - 只需按Enter即可。 你現在應該有編譯兩個文件:用戶和user.pub

chmod 600 user.pub

現在從您的計算機的公鑰文件(user.pub)傳輸到服務器。例如,讓我們使用/ tmp /目錄。 現在SSH連接到使用具有root訪問權限的帳戶服務器,您現在需要創建用戶並創建必要的文件和所有權供您使用您剛剛創建的關鍵:

# sudo su (if needed) 
# useradd -c "firstname lastname" user 
# cd /home/user 
# mkdir .ssh 
# chmod 700 .ssh 
# chown user:user .ssh 
# cat /tmp/user.pub >> .ssh/authorized_keys 
# chmod 600 .ssh/authorized_keys 
# chown user:user .ssh/authorized_keys 

一旦你做到了這一點,退出了回你自己的機器,然後使用您所創建的新的憑證和用戶帳戶嘗試SSH:

ssh -i user.pem [email protected]

+0

你能否解釋user.pem文件來自哪裏?我是否還需要進入AWS控制檯並創建相同的新用戶並下載.pem文件?謝謝。 – user1069528

+0

如上所述運行keygen命令 – error2007s

+0

時,會在實例中生成user.pem文件:將生成user和user.pub。我剛剛將用戶文件複製到user.pem,我可以使用ssh登錄。謝謝。我不清楚AWS用戶通過控制檯和這個linux創建的用戶之間的關係。我沒有在控制檯的IAM區域看到這個新的linux用戶。我可以鏈接它們並分配訪問權限嗎? – user1069528

0

當你創建一個實例,您可以指定在啓動時的關鍵。最終發生的事情是AWS採用與您創建的密鑰對關聯的公鑰,並將其放入/home/ec2-user/.ssh/中的authorized_keys中。

因此,如果這是一次性事物,您可以向需要訪問的用戶提供私鑰(您在創建密鑰時下載的.pem文件)。

如果這是一個持續的問題 - 即您將創建大量實例並有許多不同的人需要訪問它們 - 那麼您需要一個更好的解決方案,但是你必須弄清楚你的要求是。

一些潛在的解決方案是從您的用戶獲取公鑰,將它們添加到實例,然後從該實例創建AMI。使用該AMI啓動未來的實例。你也可以把用戶的公共密鑰放到S3中,並且有一個腳本在創建實例&或者將它們添加到authorized_keys或者創建單個用戶時將其拉下。如果您的所有用戶都擁有IAM帳戶,則可以從IAM獲取用戶密鑰。或者你可以使用目錄&配置你的實例來使用它進行認證。設置用戶管理

0

一種方法是

  1. 向所有用戶創建自己的公鑰和私鑰。
  2. 在我們可以運行rsync服務器以暴露所有公鑰的情況下,每個人都共享/複製/簽入其公鑰。
  3. 在服務器上,從rsync服務器獲取所有這些密鑰並運行usercreate命令。

另一種方法是,在AWS中創建一個基礎映像,其中的用戶已在authorized_keys中使用其公鑰創建。並使用此圖像來創建新的實例。