1:有沒有方法可以在不使用密鑰對的情況下登錄AWS實例?我想在單個實例上建立幾個站點/用戶。但是,我不想爲客戶端登錄密鑰對。無密鑰對的SSH到AWS實例
2:在1個AWS實例中設置託管站點/用戶的最簡單方法是使用不同的域指向單獨的目錄?
1:有沒有方法可以在不使用密鑰對的情況下登錄AWS實例?我想在單個實例上建立幾個站點/用戶。但是,我不想爲客戶端登錄密鑰對。無密鑰對的SSH到AWS實例
2:在1個AWS實例中設置託管站點/用戶的最簡單方法是使用不同的域指向單獨的目錄?
1)你應該能夠改變SSH配置(在Ubuntu上,這通常在/etc/ssh
或/etc/sshd
),並重新啓用密碼登錄。
2)AWS沒有具體說明這個問題 - Apache可以直接處理VHOSTS(虛擬主機) - 允許您指定從某個目錄提供某個域。我想Google瞭解更多關於細節的信息。
回答問題1
這是我做了一個Ubuntu EC2
:
A)以root身份登錄使用密鑰對
B)設置必要的用戶和他們的密碼與
# sudo adduser USERNAME
# sudo passwd USERNAME
C)編輯/etc/ssh/sshd_config
設置
PasswordAuthentication yes
PermitRootLogin yes
d也登陸)重啓ssh
守護進程
# sudo service ssh restart
現在你可以杜松子酒加入你的ec2
沒有密鑰對的實例。
我通過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的值來確認。
我懷疑這個答案暗示正確的解決方案,但它寫得很差,我不明白它。 – 2015-11-13 02:07:02
我甚至不知道這個文件存在。很好的答案! – 2015-11-17 18:35:27
@JimMaguire我想我假設了很多背景資料。我已經添加了一些更多的說明。這有幫助嗎?你有什麼特別的建議,你希望我加入? – 2015-11-19 08:53:39
su - root
轉到/etc/ssh/sshd_config
vi sshd_config
PermitRootLogin yes
PermitEmptyPasswords 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.
你還能使用HTTPS這些條件(1個IP和多虛擬主機)下?你知道解釋爲所有域設置openSSL的文檔嗎? – Andres 2011-05-25 16:23:15
所以我在我的問題中解決了這個問題,但是因爲這是我想澄清的公認答案。這個答案有一個AWS特定組件。 Cloud Init將作爲啓動的一部分運行,將覆蓋您使用此方法設置的配置。這就是我的答案所解決的問題。 – 2016-04-19 19:38:07