在本机执行 ssh root@localhost 都认证失败 ,说明:SSH 服务根本不允许 root 用密码登录,这是 Debian 12 的默认安全机制。
我现在给你 一次性彻底解决,复制执行即可,不用排查。
终极修复命令(直接复制运行)
bash
运行
# 1. 清空所有冲突的 PermitRootLogin 设置
sed -i '/^PermitRootLogin/d' /etc/ssh/sshd_config
# 2. 强制开启 root 密码登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# 3. 强制开启密码认证
sed -i '/^PasswordAuthentication/d' /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
# 4. 重启 SSH 生效
systemctl restart ssh
# 5. 重新设置一个 root 密码(必须!)
passwd root
执行最后一步时,它会让你输入两次新密码,输入时屏幕不显示,这是正常的。
测试是否成功
运行:
bash
运行
ssh root@localhost
输入你刚设置的密码,能登录 = 成功。