我不确定究竟是什么导致了这个问题,但我会告诉你我所知道的。
我创建了一个 amazon ec2 实例,并使用公钥/私钥身份验证以默认 ubuntu 用户身份通过 ssh 进行登录。一切都运行正常,直到...
我必须创建另一个用户并授予她 ssh 访问权限。我想给她一个用户/密码登录名。所以我将她添加为非 sudo 用户,然后修改了我的 sshd_config。以下是两个设置
PasswordAuthentication yes ### changed from no
AllowedUsers newuser1 ### this line was created
我进行了测试以确保我可以使用新用户和她的密码进行 ssh 登陆。
我也不希望该用户能够访问或查看我的 root 用户的主目录。因此我执行了“chmod -R o-rx /home/ubuntu”。
第二天,我尝试像平常一样以 ssh 方式登录 ubuntu,系统提示我输入密码。不幸的是,我从未设置/更改过默认用户的密码,也不知道它是什么。我不确定为什么它不让我用私钥登录。
可能是我的 ssh 服务器设置?我是否意外要求所有帐户都输入密码,即使它们的公钥在 ~/.ssh/authorized_keys 文件中?或者我更改了 ubuntu 用户的读取/执行权限,导致系统无法读取其 authorized_keys 文件?
另外,我该怎么做才能再次以 root 用户身份登录?我仍然可以以新用户身份登录,但它没有 sudo 权限,而且由于我没有密码,所以我无法成为 sudo 用户。
请帮忙。提前致谢
答案1
更正确的解决方案是让她给你她的公钥,这样你就可以创建一个用户并将该公钥添加到用户的 ~/.ssh/authorized_keys 文件中。
假设您实际所做的就是AllowUsers newuser1
阻止自己,因为您没有列出自己。
系统会提示您输入密码,因为 sshd 现在会提示每个人输入密码。即使您设置了密码,它也不会起作用,因为您的用户不再被允许通过 ssh 访问机器。
下次请记住从另一个窗口测试您自己的登录。
您已被锁定,唯一的解决方法是停止该实例,启动一个新实例(或者,如果有,使用另一个现有实例,无论哪种方式,它都必须位于同一可用区域),分离根磁盘,将其附加到另一个实例,安装它,修复错误配置,卸载,分离,重新连接到原始实例,然后重新启动它。