2011-05-25 195 views
42

1:有沒有方法可以在不使用密鑰對的情況下登錄AWS實例?我想在單個實例上建立幾個站點/用戶。但是,我不想爲客戶端登錄密鑰對。無密鑰對的SSH到AWS實例

2:在1個AWS實例中設置託管站點/用戶的最簡單方法是使用不同的域指向單獨的目錄?

回答

18

1)你應該能夠改變SSH配置(在Ubuntu上,這通常在/etc/ssh/etc/sshd),並重新啓用密碼登錄。

2)AWS沒有具體說明這個問題 - Apache可以直接處理VHOSTS(虛擬主機) - 允許您指定從某個目錄提供某個域。我想Google瞭解更多關於細節的信息。

+0

你還能使用HTTPS這些條件(1個IP和多虛擬主機)下?你知道解釋爲所有域設置openSSL的文檔嗎? – Andres 2011-05-25 16:23:15

+0

所以我在我的問題中解決了這個問題,但是因爲這是我想澄清的公認答案。這個答案有一個AWS特定組件。 Cloud Init將作爲啓動的一部分運行,將覆蓋您使用此方法設置的配置。這就是我的答案所解決的問題。 – 2016-04-19 19:38:07

107

回答問題1

這是我做了一個Ubuntu EC2

A)以root身份登錄使用密鑰對

B)設置必要的用戶和他們的密碼與

# sudo adduser USERNAME 
# sudo passwd USERNAME 

C)編輯/etc/ssh/sshd_config設置

有效的用戶與密碼沒有鑰匙

PasswordAuthentication yes

也希望root沒有鑰匙

PermitRootLogin yes

d也登陸)重啓ssh守護進程

# sudo service ssh restart 

現在你可以杜松子酒加入你的ec2沒有密鑰對的實例。

+6

謝謝,並在亞馬遜AMI上,最後一個命令應該是:「sudo service sshd restart」 – Suman 2012-04-11 22:06:53

+6

對我來說這工作「sudo服務ssh重啓」 – Prabhat 2014-01-12 04:34:29

+0

謝謝。但是這仍然不能解決默認的'ec2-user'帳戶。 – 2014-01-29 10:10:21

13

我通過Google來到這裏,尋找如何設置雲初始化以禁用AWS上的PasswordAuthentication的答案。這兩個答案都沒有解決這個問題。沒有它,如果你創建一個AMI,那麼在實例初始化的時候,雲初始化會再次禁用這個選項。

執行此操作的正確方法是,不是手動更改sshd_config,而是需要更正cloud init的設置(用於在配置期間配置實例的開放源代碼工具。更多信息請登錄:https://cloudinit.readthedocs.org/en/latest/)。 cloud init的配置文件位於: /etc/cloud/cloud.cfg

此文件用於設置雲init使用的許多配置。通讀這個文件,查看您可以在cloud-init上配置的項目的示例。這包括諸如新創建的實例上的默認用戶名等項目)

要啓用或禁用SSH上的密碼登錄,您需要更改參數ssh_pwauth的值。在文件/etc/cloud/cloud.cfg中將參數ssh_pwauth從0更改爲1後,烘烤AMI。如果從此新烘焙的AMI啓動,它將在設置後啓用密碼驗證。

您可以通過檢查其他答案中提到的ssh config中PasswordAuthentication的值來確認。

+0

我懷疑這個答案暗示正確的解決方案,但它寫得很差,我不明白它。 – 2015-11-13 02:07:02

+0

我甚至不知道這個文件存在。很好的答案! – 2015-11-17 18:35:27

+1

@JimMaguire我想我假設了很多背景資料。我已經添加了一些更多的說明。這有幫助嗎?你有什麼特別的建議,你希望我加入? – 2015-11-19 08:53:39

0

su - root

轉到/etc/ssh/sshd_config

vi sshd_config

認證:

PermitRootLogin yes

要啓用空密碼,更改爲Yes(不推薦)

PermitEmptyPasswords no

更改爲no禁用隧道明文密碼

PasswordAuthentication yes

:X!

然後重啓ssh服務

[email protected]:/etc/ssh# service ssh restart 
ssh stop/waiting 
ssh start/running, process 10978 

現在轉到sudoers的文件(在/ etc/sudoers文件)。

用戶權限說明

root ALL=(ALL)NOPASSWD:ALL 
yourinstanceuser ALL=(ALL)NOPASSWD:ALL /This is the user by which you are launching instance.