以下是CentOS系统中SSH服务配置文件/etc/ssh/sshd_config的核心参数详解及优化建议,结合安全性与功能需求分类说明:
🔧 一、核心参数详解
-
网络与端口配置
Port 22
默认监听端口。安全建议:改为非标准端口(如2222)以减少自动化扫描攻击。ListenAddress 0.0.0.0
监听所有IPv4地址。若需限制访问IP,可指定具体地址(如192.168.1.100)。AddressFamily any
支持IPv4/IPv6双栈。按需改为inet(仅IPv4)或inet6(仅IPv6)。
-
认证与访问控制
PermitRootLogin yes
允许root登录。强烈建议设为no,改用普通用户+sudo提权。PasswordAuthentication yes
启用密码认证。安全建议:设为no,强制使用密钥认证。PubkeyAuthentication yes
启用公钥认证。需配合AuthorizedKeysFile .ssh/authorized_keys(存储客户端公钥的文件)。AllowUsers user1 user2@IP
仅允许指定用户或IP登录(如AllowUsers admin@192.168.1.0/24)。DenyUsers baduser
禁止特定用户登录(黑名单)。
-
会话与连接管理
MaxAuthTries 6
单次连接允许的最大认证失败次数。超过则断开,可降低至3防暴力破解。MaxSessions 10
同一用户的最大并发会话数。避免资源耗尽。ClientAliveInterval 300
服务器检测客户端活跃的间隔(秒)。设为60可更快释放空闲连接。ClientAliveCountMax 3
连续无响应次数上限,超时自动断开(总超时=Interval × CountMax)。
🔒 二、安全加固配置
-
禁用高风险功能
PermitEmptyPasswords no
禁止空密码登录。X11Forwarding no
禁用X11图形转发,减少攻击面。UseDNS no
禁用反向DNS解析,加速连接并防中间人攻击。
-
加密算法强化
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com KexAlgorithms curve25519-sha256 MACs hmac-sha2-512-etm@openssh.com仅启用高强度加密算法,禁用弱算法(如SSHv1)。
-
密钥管理
- 生成强密钥:
ssh-keygen -t ed25519 -a 100 - 公钥部署:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host。
- 生成强密钥:
⚡ 三、性能优化
-
GSSAPIAuthentication no
关闭GSSAPI认证(非企业环境无需启用),提升连接速度。 -
Compression delayed
启用延迟压缩,减少带宽占用。
📁 四、文件权限与日志
-
权限要求:
.ssh目录权限:700authorized_keys文件权限:600
权限错误会导致密钥认证失败。
-
日志路径:
- 认证日志:
/var/log/secure(CentOS) - 监控命令:
grep 'sshd' /var/log/secure。
- 认证日志:
🛠️ 五、配置检查与排错
-
语法校验:
sshd -t # 检查配置文件语法 -
重载服务:
systemctl restart sshd # 修改后必须重启生效 -
常见错误:
ssh_exchange_identification: Connection closed→ 配置语法错误。server refused our key→.ssh目录权限问题。
🛡️ 六、安全加固建议总结
| 参数 | 推荐值 | 作用 |
|---|---|---|
Port |
非22端口(如2222) | 减少扫描攻击 |
PermitRootLogin |
no |
禁止root远程登录 |
PasswordAuthentication |
no |
强制密钥认证 |
UseDNS |
no |
加速连接,防DNS欺骗 |
AllowUsers |
指定用户/IP | 限制访问范围 |
- 进阶措施:
- 部署
fail2ban自动封禁暴力破解IP。 - 启用双因素认证(2FA)。
- 定期轮换密钥(每3-6个月)。
- 部署
💎 最佳实践流程:
1️⃣ 备份配置 → 2️⃣ 禁用root/密码登录 → 3️⃣ 启用密钥认证 → 4️⃣ 限制端口/IP → 5️⃣ 启用日志监控。
修改前务必通过sshd -t验证语法,避免配置错误导致服务不可用。
浙公网安备 33010602011771号