debian13禁止ssh密码登录

Updated

在 Debian 13 中禁止 SSH 密码登录,核心步骤是配置 SSH 服务以仅允许密钥认证。在操作前,请务必确保你已经成功配置并验证了 SSH 密钥登录,否则一旦禁用密码登录,你将无法远程连接服务器。

以下是具体的操作步骤:

第一步:确认密钥登录已生效

  1. 在本地机器上,确保你可以通过密钥成功登录到服务器:
   ssh username@your_server_ip
  1. 如果不需要输入密码即可登录,说明密钥配置正确。

第二步:修改 SSH 配置文件

Debian 13 推荐在 /etc/ssh/sshd_config.d/ 目录下创建独立的配置文件,或者直接修改主配置文件 /etc/ssh/sshd_config。

  1. 使用编辑器打开配置文件(以 /etc/ssh/sshd_config 为例):
   sudo nano /etc/ssh/sshd_config
  1. 找到以下参数,确保它们被设置为相应的值(如果前面有 # 注释,请去掉注释):

* PubkeyAuthentication yes (确保启用密钥认证)

* PasswordAuthentication no (关键:禁用密码登录)

* ChallengeResponseAuthentication no (建议同步关闭)

  1. (可选)禁止 Root 密码登录:

如果你仍希望保留 Root 登录但仅限密钥,可以设置:

   PermitRootLogin prohibit-password

第三步:验证并重启服务

  1. 检查语法错误(非常重要,防止配置错误导致 SSH 无法启动):
   sudo sshd -t

如果没有任何输出,说明语法正确。

  1. 重启 SSH 服务:
   sudo systemctl restart ssh

第四步:测试

不要关闭当前的 SSH 连接窗口。请打开一个新的终端窗口,尝试重新通过 SSH 登录服务器:

  • 如果连接成功且未提示输入密码,则说明配置已生效。
  • 如果被拒绝,请立即检查当前未关闭的那个连接窗口,并根据报错修复配置文件。

---

提示: 始终保持至少一个拥有 sudo 权限的会话处于打开状态,直到你确认新连接能够正常工作为止。