首页/安全/安全加固速查/sshd 配置与主机密钥权限
主机加固基线90 条

sshd 配置与主机密钥权限

/etc/ssh/sshd_config 与主机私钥若可被普通用户读写,等于泄露服务私钥或允许注入配置;统一 root 属主并收紧权限。

安全加固速查安全更新于 2026-10-13

SSH 配置与主机密钥的权限

SSH 服务端涉及两类敏感文件:配置文件决定谁能怎么登录,主机私钥决定客户端如何确认「连的确实是这台机器」。两者都有明确的权限要求——属主 root、私钥仅 root 可读。权限放宽的直接后果是:普通用户能改配置来放行自己,或者取走主机私钥用于中间人攻击。sshd 本身会拒绝加载权限过宽的私钥,这属于安全机制的正常表现。

基本信息

加固项SSH 配置与主机密钥权限
适用平台Linux(OpenSSH 服务端)
风险等级高
基线配置文件与私钥收紧到仅 root 可读写,公钥可读
检查对象配置文件与全部主机密钥对

典型使用场景

  • 基线核查:确认配置与密钥权限全部符合要求
  • 故障排查:服务启动失败或客户端提示密钥变更时先看权限
  • 事件排查:私钥是否被读取过,是判断中间人风险的前提
  • 变更复核:更换或新增主机密钥后逐个确认权限
  • 合规测评:远程管理条款要求配置文件权限受控

核查命令

核查命令
stat -c '%a %U:%G %n' /etc/ssh/sshd_config
stat -c '%a %U:%G %n' /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub
ls -l /etc/ssh/ | head -20          # 检查目录内是否有多余配置文件
sshd -t                             # 语法校验,权限问题也会在此暴露

加固与验证

加固与验证
chown root:root /etc/ssh/sshd_config /etc/ssh/ssh_host_*
chmod 600 /etc/ssh/sshd_config /etc/ssh/ssh_host_*_key
chmod 644 /etc/ssh/ssh_host_*_key.pub
sshd -t && systemctl reload sshd     # 先校验再重载
stat -c '%a %U:%G %n' /etc/ssh/ssh_host_ed25519_key   # 复核

权限基线对照

文件基线说明
/etc/ssh/sshd_config600 root:root可写即可放行未授权登录方式
主机私钥600 root:root泄露可用于冒充主机,必须严格限制
主机公钥644 root:root公开信息,可读但不应可写
目录内多余配置按需保留并收紧被引入的额外配置同样影响登录行为
服务会主动拒绝权限过宽的私钥:报错提示权限问题时,这是安全机制而非故障,修复权限后再重载即可,不要用放宽限制的方式绕过。改动前保留一个已登录会话,改完先做语法校验再重载。
两个细节:一是重载不会重新读取全部参数,监听地址与端口之类的改动需要重启服务;二是主机通常同时存在多种算法的密钥对,要逐个核对,遗漏一套等于留一个不受控的入口。

与认证配置一起核查

文件权限只是这条线的一半。完整核查还应确认登录相关的关键参数处于预期状态,例如远程登录方式、是否允许空口令、认证尝试次数等。把权限输出与生效配置输出放在同一份报告里,既能回答「文件受控」,也能回答「行为符合基线」,避免只做一半结论。

易错点

  • 只核对一套主机密钥:多算法密钥对并存,遗漏的私钥同样可被用于冒充主机
  • 用放宽权限的方式解决启动报错:服务拒绝过宽私钥是安全机制,正确处理是收紧权限
  • 改完只重载不验证:监听类参数需要重启才生效,且要新开连接确认登录正常
  • 忽略配置文件所在目录的额外文件:被引入的配置同样影响登录行为,需一并核查
  • 核查不留原始权限输出:缺少快照,事后无法判断是配置漂移还是从未达标

数据来源与参考

  • OpenSSH 手册 sshd_config(5)、sshd(8)
  • CIS Linux Benchmark:SSH 服务配置

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌