![Debian 从 Bullseye 升级到 Bookworm 后,SSH 登录失败,并出现“权限被拒绝”错误](https://linux22.com/image/794240/Debian%20%E4%BB%8E%20Bullseye%20%E5%8D%87%E7%BA%A7%E5%88%B0%20Bookworm%20%E5%90%8E%EF%BC%8CSSH%20%E7%99%BB%E5%BD%95%E5%A4%B1%E8%B4%A5%EF%BC%8C%E5%B9%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%E2%80%9D%E9%94%99%E8%AF%AF.png)
从 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
采取的故障排除步骤:
sshd
从机器中清除并重新安装openssh-server
。- 将其设置
sshd_config
为完全空白配置,仅使用默认值。 - 尝试使用 SSH 本地进入服务器
ssh user@localhost
,但遇到同样的错误。 - 尝试了不同的默认 shell(例如
/usr/bin/bash
),但收到类似的“权限被拒绝”错误。 - 尝试以不同的用户身份登录,包括 root,但问题仍然存在。
- 已验证
/etc/shells
包含正确的 shell 路径(/usr/bin/bash
、/usr/bin/sh
等等)。 - 检查了主目录和
.ssh
目录的权限,看起来正常。 - 删除
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 进程。修复方法:
- 使用 验证 AppArmor 的状态
aa-status
。如果 sshd 处于“强制”模式,则 AppArmor 正在主动在 SSH 守护进程上应用策略。 - 使用 删除当前 AppArmor 配置文件
sudo rm -fr /etc/apparmor.d
。 - 重新安装 AppArmor 以
sudo apt-get install apparmor
获取更新的配置文件。 - 使用 重新启动 SSH 服务
sudo systemctl restart ssh
。
这应该可以解决任何 SSH 登录问题。注意:此方法将删除所有 AppArmor 配置文件。如果您有自定义配置文件或希望保留一些配置文件,请考虑更新特定配置文件。