OpenSSH 安全配置核心概念解析
配置目标
通过修改 OpenSSH 服务器配置,提升系统安全性,主要实现两个目标:
-
禁止直接以 root 用户身份远程登录
-
禁用基于密码的身份验证,强制使用 SSH 密钥认证
安全风险分析
禁止 root 直接登录的原因
-
用户名已知:所有 Linux 系统都有 root 用户,攻击者无需猜测用户名
-
权限过大:root 账户拥有最高权限,一旦泄露后果严重
-
审计困难:无法追踪具体是哪个用户以 root 身份进行了操作
注:当说“禁止root直接登录”时,我们指的是禁止 “使用root这个用户名进行远程登录” 这个行为,无论操作者是谁。
禁用密码认证的原因
-
密码易受暴力破解攻击
-
SSH 密钥认证比密码更安全
-
密钥认证抵抗自动化攻击能力更强
技术实现要点
关键配置参数
在 /etc/ssh/sshd_config
文件中设置:
-
PermitRootLogin prohibit-password
- 禁止 root 使用密码登录,只允许密钥登录 -
PasswordAuthentication no
- 完全禁用密码认证
红帽企业 Linux 9 的默认安全改进
从 RHEL 9 开始,PermitRootLogin
默认设置为 prohibit-password
,这意味着:
-
root 用户不能使用密码远程登录
-
只能使用 SSH 密钥进行 root 身份验证
-
显著降低暴力破解攻击风险
工作流程变化
配置前的登录方式
远程用户 → 直接以 root 身份登录 → 使用密码认证
配置后的登录方式
远程用户 → 以普通用户身份登录 → 切换到 root 用户↓使用 SSH 密钥认证
安全优势
分层安全防护
-
身份验证层:强制使用更安全的密钥认证
-
权限层:避免直接使用高权限账户
-
审计层:通过用户切换记录实现操作追踪
风险缓解
-
即使私钥泄露,攻击者也无法直接获得 root 权限
-
所有特权操作都能追溯到具体的授权用户
-
大大降低自动化攻击的成功率
这种配置方式在保证系统功能正常使用的同时,显著提升了整体的安全防护水平。