删除了我的主文件夹,现在我无法通过 SSH 进行远程连接

删除了我的主文件夹,现在我无法通过 SSH 进行远程连接

我意外地删除了主目录sudo rm -r ~,当我尝试重新连接 ssh 时返回

ssh -v key.pem ec2-user@PublicIP-address

ec2-user@PublicIP-address: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

我仔细检查了所有内容,正确的 IP 和正确的密钥。

我也尝试过清除我的ssh-key -D 我也尝试过制作自己的 ssh-keygen 并添加到 ssh-add 中我也尝试过重新启动我的远程计算机所有这些都导致相同的结果

我仍然可以通过 amazon web 控制台连接实例,但是我将无法再执行诸如 之类的命令,而scp这些命令对于管理我的网站至关重要。此时我注意到 Ec2 控制台显示[~bash4.2]在命令行输入中。

接下来我尝试通过以下方式重新创建主文件夹:

sudo mkdir /home/user
cp -rT /etc/skel/ "$HOME"
chown -R ec2-user:ec2-user /home/ec2-user

重新启动实例并重试

我仍然收到相同的权限被拒绝错误,但现在 Ec2 控制台显示 [ec2-user@PrivateIPaddress]在命令行输入中,这表明我做对了。我怀疑这可能与手动创建的 HOME 目录导致的权限冲突有关

但我来这里的原因显然是因为我被难住了,我可以看到相关的问题,但从来没有找到这个特定问题的答案,所以我在寻求帮助。谢谢

答案1

当您登录 EC2 实例并执行“sudo rm”命令时,您删除了登录用户的主目录。在本例中,该用户是 ec2-user

由于您可以通过 Web 控制台访问 EC2 控制台,因此您需要重新创建主目录

mkdir -p /home/ec2-user/.ssh

您现在有了主目录 - 但您没有 ~/.ssh/authorized_keys 文件中 ec2 用户的公钥

如果您拥有使用实例创建的私钥/公钥对,则可以使用它,但假设所有内容都丢失了,请在家用计算机上创建一个新的密钥对(ssh-keygen -t rsa -b 2048)并将 id_rsa.pub 文件的内容复制到 EC2 实例(/home/ec2-user/.ssh/authorized_keys)

确保.ssh 目录的权限受到限制

chmod 0700 /home/ec2-user/.ssh
chown -R ec2-user:ec2-user /home/ec2-user

现在你应该能够从外部机器通过 ssh 连接到你的 EC2 主机了

答案2

问题是,删除主目录也会删除.ssh用于 ssh 连接的公钥所在的目录。因此,您应该创建此目录:

mkdir ~/.ssh
chmod 700 ~/.ssh

并复制你的公钥(来自备份):

cat public_key_backup >>~/.ssh/authorized_keys

答案3

将所有用户默认文件从 /etc/skel 复制到用户主目录。

sudo cp -r /etc/skel/* /home/home_dir

然后更改权限。

chown -R username:username home_dir

相关内容