Debian 从 Bullseye 升级到 Bookworm 后,SSH 登录失败,并出现“权限被拒绝”错误

Debian 从 Bullseye 升级到 Bookworm 后,SSH 登录失败,并出现“权限被拒绝”错误

从 Bullseye 升级到 Bookworm 后,我无法通过 SSH 进入我的 Debian 服务器。我尝试了各种故障排除步骤,但问题仍然存在。

错误信息:

Last login: Wed Apr 10 13:42:16 2024 from 192.168.x.x
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
/usr/bin/sh: Permission denied

采取的故障排除步骤:

  1. sshd从机器中清除并重新安装openssh-server
  2. 将其设置sshd_config为完全空白配置,仅使用默认值。
  3. 尝试使用 SSH 本地进入服务器ssh user@localhost,但遇到同样的错误。
  4. 尝试了不同的默认 shell(例如/usr/bin/bash),但收到类似的“权限被拒绝”错误。
  5. 尝试以不同的用户身份登录,包括 root,但问题仍然存在。
  6. 已验证/etc/shells包含正确的 shell 路径(/usr/bin/bash/usr/bin/sh等等)。
  7. 检查了主目录和.ssh目录的权限,看起来正常。
  8. 删除authorized_keys文件以排除基于密钥的身份验证的任何问题。

附加信息:

  • 当我以 root 身份和普通用户身份本地访问服务器时,我都可以成功登录。
  • /var/log/auth.log文件显示“接受...的密码”,后跟“已收到来自...的断开连接:用户已断开连接”。

系统详细信息:

  • Debian 版本:Bookworm(从 Bullseye 升级而来)
  • OpenSSH 服务器版本:OpenSSH_9.2p1 Debian-2+deb12u2,OpenSSL 3.0.11 2023 年 9 月 19 日

setatus 给出:SELinux 状态:已禁用

我已经用尽了所有故障排除方法,非常感谢任何关于如何解决此 SSH 登录问题的见解或建议。如果您需要任何进一步的信息,请告诉我。

答案1

该问题可能源于 AppArmor 配置文件过期或配置错误,影响了 Debian Bookworm 中的 sshd 进程。修复方法:

  1. 使用 验证 AppArmor 的状态aa-status。如果 sshd 处于“强制”模式,则 AppArmor 正在主动在 SSH 守护进程上应用策略。
  2. 使用 删除当前 AppArmor 配置文件sudo rm -fr /etc/apparmor.d
  3. 重新安装 AppArmor 以sudo apt-get install apparmor获取更新的配置文件。
  4. 使用 重新启动 SSH 服务sudo systemctl restart ssh

这应该可以解决任何 SSH 登录问题。注意:此方法将删除所有 AppArmor 配置文件。如果您有自定义配置文件或希望保留一些配置文件,请考虑更新特定配置文件。

相关内容