debian13禁止ssh密码登录
在 Debian 13 中禁止 SSH 密码登录,核心步骤是配置 SSH 服务以仅允许密钥认证。在操作前,请务必确保你已经成功配置并验证了 SSH 密钥登录,否则一旦禁用密码登录,你将无法远程连接服务器。
以下是具体的操作步骤:
第一步:确认密钥登录已生效
- 在本地机器上,确保你可以通过密钥成功登录到服务器:
ssh username@your_server_ip
- 如果不需要输入密码即可登录,说明密钥配置正确。
第二步:修改 SSH 配置文件
Debian 13 推荐在 /etc/ssh/sshd_config.d/ 目录下创建独立的配置文件,或者直接修改主配置文件 /etc/ssh/sshd_config。
- 使用编辑器打开配置文件(以
/etc/ssh/sshd_config为例):
sudo nano /etc/ssh/sshd_config
- 找到以下参数,确保它们被设置为相应的值(如果前面有
#注释,请去掉注释):
* PubkeyAuthentication yes (确保启用密钥认证)
* PasswordAuthentication no (关键:禁用密码登录)
* ChallengeResponseAuthentication no (建议同步关闭)
- (可选)禁止 Root 密码登录:
如果你仍希望保留 Root 登录但仅限密钥,可以设置:
PermitRootLogin prohibit-password
第三步:验证并重启服务
- 检查语法错误(非常重要,防止配置错误导致 SSH 无法启动):
sudo sshd -t
如果没有任何输出,说明语法正确。
- 重启 SSH 服务:
sudo systemctl restart ssh
第四步:测试
不要关闭当前的 SSH 连接窗口。请打开一个新的终端窗口,尝试重新通过 SSH 登录服务器:
- 如果连接成功且未提示输入密码,则说明配置已生效。
- 如果被拒绝,请立即检查当前未关闭的那个连接窗口,并根据报错修复配置文件。
---
提示: 始终保持至少一个拥有 sudo 权限的会话处于打开状态,直到你确认新连接能够正常工作为止。