安安茶茶

没有谁会为你踏雪而来,喜欢的风景要躬亲筚路。人生有什么意义,接受赠予+22181803=VQ

  博客园  :: 首页  :: 新随笔  :: 联系 ::  :: 管理
在 Debian 13 (Trixie) 中禁止密码登录 SSH 的过程与旧版本基本一致,但建议遵循最新的配置规范(使用 sshd_config.d 目录)。


在执行以下操作前,请务必确保你已经成功配置并测试了 SSH 密钥登录,并且该用户具有 sudo 权限。否则,一旦禁用密码登录,你可能会被彻底锁在系统之外。
第一步:确保密钥已部署
如果你还没有设置密钥,请在本地机器上执行:
ssh-copy-id username@your_server_ip

测试无需密码即可登录:ssh username@your_server_ip。


第二步:修改 SSH 配置
虽然可以直接修改 /etc/ssh/sshd_config,但 Debian 现在推荐在 sshd_config.d 目录下创建独立的配置文件,这样在系统升级时更不容易产生冲突。
 * 创建一个新的配置文件:
   sudo nano /etc/ssh/sshd_config.d/99-disable-password.conf

 * 在文件中写入以下内容:
   # 禁用密码身份验证
PasswordAuthentication no

# 禁用挑战响应认证(针对某些 MFA/PAM 模块)
KbdInteractiveAuthentication no

# 确保公钥认证是开启的(通常默认开启)
PubkeyAuthentication yes

 * 检查 /etc/ssh/sshd_config(可选):
   确保主配置文件中有一行 Include /etc/ssh/sshd_config.d/*.conf(Debian 12/13 默认都有)。
第三步:验证并重启服务
在重启 SSH 服务之前,务必检查语法是否正确,以防配置错误导致服务无法启动:
 * 检查语法:
   sudo sshd -t

   如果没有任何输出,说明语法正确。
 * 重启 SSH 服务:
   sudo systemctl restart ssh

进阶:禁止 Root 用户密码登录
如果你允许 Root 登录,但只允许它使用密钥,可以再添加或修改以下配置:
PermitRootLogin prohibit-password

这将禁止 Root 使用密码,但保留其密钥登录权限。

 

posted on 2026-01-22 15:57  长虫山小木屋  阅读(0)  评论(0)    收藏  举报