无法登录:升级到 Ubuntu 16.04 后我的公共 ssh 密钥无效,密码认证改为 no,现在我无法重新登录

无法登录:升级到 Ubuntu 16.04 后我的公共 ssh 密钥无效,密码认证改为 no,现在我无法重新登录

我将远程服务器升级到 Ubuntu 16.04(从 14.10 开始)。

然后我将其重新配置为仅使用密钥而不使用密码。通过编辑文件,/etc/ssh/sshd_config我将以下内容更改为:

PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no

然后使用以下命令重新加载 shh 服务:systemctl reload sshd

当前的问题是,由于某种原因,~/.ssh/authorized_keys 文件中的所有公共 ssh 密钥似乎无效。

所以现在,我无法再登录了。我只得到 Permission denied (publickey)。我尝试了多个 -o 选项来强制输入密码,但没有成功。我所需要的只是能够使用密码登录。

非常感谢所有的帮助。

答案1

如果你无法启动到 root shell,那你就有点没救了。我以前见过这种情况,当时人们忘记更改密钥文件的访问权限。推荐的方法是尝试使用密钥关闭基于密码的身份验证。

如果它是云中的实例,请致电您的提供商并让他们重置密码(这可能不是免费的,甚至不提供。)

如果它是一个真正的盒子并且有人在你附近,那就打电话给他们并用披萨贿赂他们。

否则,就需要上车。

当您进入计算机时,按下任何神奇的 F 键,即可进入启动菜单,然后选择“root shell”。将文件系统挂载为可写。然后将配置文件编辑回其启动位置并重试。

此外,出于这个原因,我通常会坐在机器前面进行此操作。在 VPS 情况下,我会先在本地机器上练习此方法,以确保我的方法正确。

答案2

Ubuntu 16.04 已禁用 dsa 密钥,现在仅接受 rsa 密钥。这也困扰了我,但幸运的是,我仍然启用了密码访问。

你可以加

Host *
PubkeyAcceptedKeyTypes=+ssh-dss

到 ~/.ssh/config,或者切换到 rsa 密钥。进入后...

相关内容