我有一個AWS微型實例,直到現在,使用ec2-user登錄到實例時都沒有問題。我更改了ec2用戶的一些權限(基本上刪除了它添加到的www組,並再次添加該組)。現在我被鎖定在實例之外。我得到的錯誤是:EC2 - 無法使用ec2-user登錄
斷開:不支持的認證方法可用(服務器發送:公鑰)
我檢查了以下,一切都似乎是在地方:
- 我的IP是在AWS安全組更新
- 我的密鑰(.ppk)是一樣的,我已經用了幾個月
- 我的安全組有80和442啓用
請幫忙...這真是困擾我大好時光!
我有一個AWS微型實例,直到現在,使用ec2-user登錄到實例時都沒有問題。我更改了ec2用戶的一些權限(基本上刪除了它添加到的www組,並再次添加該組)。現在我被鎖定在實例之外。我得到的錯誤是:EC2 - 無法使用ec2-user登錄
斷開:不支持的認證方法可用(服務器發送:公鑰)
我檢查了以下,一切都似乎是在地方:
請幫忙...這真是困擾我大好時光!
您收到來自SSH服務的錯誤信息,因此您可以確定這不是防火牆問題。
它很難確切地知道你做了什麼,但是你可能無意中打開了存儲允許的公鑰~/.ssh/authorized_keys
的文件的訪問權限。該文件僅適用於非常有限的權限。
有一種方法可以從中恢復,但它確實涉及多個步驟。
如果一切設置正確,您的密鑰應該再次在您的現有實例上工作。
感謝您的意見。最終我不得不開始一個嶄新的實例並將其複製。我估計老人弄得太亂了 – coderatlarge
不確定您是否從9個月看到此post,但它看起來像有人有類似的問題。如果您使用IAM,請確保您的內聯策略允許訪問EC2。
如果ec2-user
以某種方式損壞,您可以添加一個額外的用戶。此方法不需要安裝音量,而是依靠修改EC2控制檯中的User Data
。
見https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/
例如,您可以創建一個新的密鑰:
ssh-keygen -t rsa -C private.key -f private.key -q -N ""
然後使用以下User Data
:
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
USER=additional-user # 1
adduser $USER
echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/cloud-init
mkdir /home/$USER/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAA....A38MHe0KAzY9Ob private.key" >> /home/$USER/.ssh/authorized_keys # 2
--//
additional-user
用的用戶名您的選擇private.key.pub
內容。然後,您應該能夠使用SSH連接實例:
chmod 600 private.key
ssh -i private.key [email protected]<ec2 public ip>
記得清理你User Data
,使其不留在以後啓動運行。一旦ec2用戶再次工作,也取消配置其他用戶(或至少刪除其sudo訪問權限)。
有關詳細說明,請參閱:https://bitbucket.org/thorntechnologies/sftpgateway-public/wiki/Locked%20out%20of%20EC2%20instance
我想你的意思是443,而不是442? SSH默認使用端口22,它啓用? – David