跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

怎么在Linux利用Chattr-I锁定Authorized_Keys防止非法的公钥添加行为

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

相关文章