Linux EC2-无法使用EC2用户登录
我有一个AWS微实例,到目前为止,我使用ec2用户登录该实例没有问题。我更改了ec2用户的一些权限(基本上删除了它添加到的www组,并再次添加了该组)。现在我被锁在实例之外。我得到的错误是: 已断开连接:没有支持的身份验证方法可用(已发送服务器:公钥) 我检查了以下各项,似乎一切都准备就绪:Linux EC2-无法使用EC2用户登录,linux,amazon-web-services,amazon-ec2,Linux,Amazon Web Services,Amazon Ec2,我有一个AWS微实例,到目前为止,我使用ec2用户登录该实例没有问题。我更改了ec2用户的一些权限(基本上删除了它添加到的www组,并再次添加了该组)。现在我被锁在实例之外。我得到的错误是: 已断开连接:没有支持的身份验证方法可用(已发送服务器:公钥) 我检查了以下各项,似乎一切都准备就绪: 我的IP在AWS安全组中更新 我的密钥(.ppk)与我已使用数月的密钥相同 我的安全组已启用80和442 请帮忙。。。这真的让我很烦恼 不确定你是否在9个月前看到过这个问题,但看起来有人也有类似的问题。如果
请帮忙。。。这真的让我很烦恼 不确定你是否在9个月前看到过这个问题,但看起来有人也有类似的问题。如果您使用的是IAM,请确保您的内联策略允许EC2访问。您从SSH服务中收到一个错误,因此您可以确保这不是防火墙问题 很难确切地知道您做了什么,但是您可能无意中中断了对存储允许的公钥的文件的访问
~/.ssh/authorized_keys
。此文件只能在权限非常有限的情况下使用
有一种方法可以从中恢复,但它确实涉及几个步骤
如果所有设置都正确,则密钥应该在现有实例上再次工作 如果
ec2用户
以某种方式损坏,您可以添加其他用户。这种方法不需要装入卷,而是依赖于修改EC2控制台中的用户数据
看
例如,您可以创建一个新密钥:
ssh-keygen-t rsa-C private.key-f private.key-q-N”“
然后使用以下用户数据
:
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
--//
用您选择的用户名替换其他用户
用刚刚生成的private.key.pub
内容替换双引号中的内容
然后,您应该能够通过ssh连接到实例中:
chmod 600 private.key
ssh -i private.key additional-user@<ec2 public ip>
chmod 600 private.key
ssh-i private.key附加用户@
记得清理你的用户数据
,这样它就不会在以后的启动中继续运行。一旦ec2用户再次工作,还将取消对其他用户的访问(或至少删除其sudo访问)
有关更详细的说明,请参阅:我猜您指的是443,而不是442?SSH默认使用端口22,这是启用的吗?谢谢您的评论。最终,我不得不开始一个全新的实例,并将其复制到该实例中。我想那辆旧的太乱了