sshd_config是OpenSSH服务端的核心配置文件,通常位于/etc/ssh/目录下,所有SSH服务的运行规则都可以通过修改这个文件来调整。正确的配置既能提升远程连接的安全性,也能满足个性化的使用需求。

sshd_config常用配置项说明
以下是实际使用中最高频的配置项,修改前建议先备份原配置文件,避免配置错误后无法恢复。
| 配置项 | 默认值 | 作用说明 |
|---|---|---|
| Port | 22 | 指定SSH服务监听的端口,修改后可减少端口扫描攻击 |
| PermitRootLogin | yes | 是否允许root用户直接通过SSH登录,建议设置为no提升安全性 |
| PasswordAuthentication | yes | 是否允许密码登录,设置为no可强制使用密钥登录 |
| PubkeyAuthentication | yes | 是否允许公钥认证,密钥登录需要开启这个配置 |
| AllowUsers | 无 | 指定允许通过SSH登录的用户列表,未列出的用户无法登录 |
| MaxAuthTries | 6 | 最大认证尝试次数,超过后断开连接,建议设置为3到5 |
配置修改示例
假设我们需要将SSH端口改为2222,禁止root直接登录,禁用密码登录,只允许user1和user2两个用户登录,同时最大认证尝试次数设为3,可以按照以下方式修改配置。
首先备份原配置文件:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
然后使用文本编辑器打开配置文件,修改或添加对应的配置项:
# 修改SSH监听端口为2222 Port 2222 # 禁止root用户直接登录 PermitRootLogin no # 禁用密码登录 PasswordAuthentication no # 开启公钥认证 PubkeyAuthentication yes # 只允许user1和user2登录 AllowUsers user1 user2 # 最大认证尝试次数为3 MaxAuthTries 3
配置生效方法
修改完sshd_config后,需要重启SSH服务才能让配置生效,不同Linux发行版的重启命令略有区别:
- CentOS、RHEL、Fedora系统使用以下命令:
systemctl restart sshd
- Ubuntu、Debian系统使用以下命令:
systemctl restart ssh
重启后可以使用ss -tlnp | grep sshd命令查看SSH服务是否在新配置的端口上监听,确认配置生效。
配置注意事项
修改配置时需要注意以下几点,避免出现无法远程连接的问题:
- 修改端口后,远程连接时需要指定新端口,比如
ssh -p 2222 user@服务器IP - 禁用密码登录前,一定要先配置好公钥登录,否则会无法登录服务器
- 如果修改配置后服务启动失败,可以查看
/var/log/secure或者/var/log/auth.log日志排查错误原因 - 配置AllowUsers时,多个用户名之间用空格分隔,不要使用逗号
重要提醒:如果是远程修改服务器上的sshd_config,建议先开一个额外的SSH会话作为备用,避免配置错误后当前会话断开就无法再连接服务器。
sshd_configSSH服务Linux配置SSH安全修改时间:2026-07-10 05:24:20