chattr +i 锁定 authorized_keys 文件可防止任何用户(含 root)修改、重命名、删除或追加内容,需先备份、设权限、验归属,再执行锁定并用 lsattr 验证 i 标志;更新密钥时须先解锁再重锁,且须配合禁密码登录等其他防护措施。
用
锁定
文件,是最直接有效的防篡改手段。该操作会让文件进入“不可修改”状态:任何用户(包括 root)都无法编辑、重命名、删除或追加内容,除非先解除锁定。
锁定前的关键准备
确保你已确认当前公钥列表完整且可信,因为加锁后无法实时增删密钥。建议同步完成以下动作:
备份原始
文件,例如:
检查文件权限是否合理:
,
确认该文件不属于 root 用户以外的其他账户误配(如服务账户被滥用)
执行锁定操作
以 root 或对应用户身份运行:
注意:
会自动展开为当前用户家目录;若需锁定系统级 SSH 配置(如
),也适用相同命令,但需 root 权限。
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
验证是否生效:
,输出中应含
i
标志,例如:
后续维护与风险提示
加锁不是一劳永逸,需配套管理流程:
需要更新密钥时,必须先解除锁定:
,操作完再重新加锁
不要对整个
目录使用
,否则连
更新都会失败;只锁目标文件更精准
该机制依赖 ext4/xfs 等支持扩展属性的文件系统,NFS 挂载点通常不生效
若服务器被提权,攻击者仍可执行
解锁——所以它必须配合其他防护(如禁用密码登录、限制 IP、审计日志)一起使用
这个操作本身很简单,但真正起作用的前提是把它放进你的 SSH 安全加固闭环里。
chattr +iauthorized_keysauthorized_keyscp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.bakchmod 600 ~/.ssh/authorized_keyschmod 700 ~/.sshchattr +i ~/.ssh/authorized_keys~/etc/ssh/sshd_configlsattr ~/.ssh/authorized_keys----i---------e---chattr -i ~/.ssh/authorized_keys~/.ssh+iknown_hostschattr -i