密钥、密码和环境变量
常见秘密
- 数据库密码和连接串。
- JWT、Session 和加密 Secret。
- SSH、TLS 私钥。
- 云存储和第三方 API 凭据。
- 备份加密密钥。
.env 不应提交 Git,也不应通过聊天、工单或日志传播。限制文件所有者和权限:
chmod 600 /srv/nloop/shared/.env
权限只是基础,还应使用专用密钥管理、轮换和审计方案。
Shell 泄漏渠道
- 命令参数可能被
ps看到。 - Shell History 会保存命令。
set -x会打印变量展开。/proc/<pid>/environ可能被同权限用户读取。- 崩溃日志和错误对象可能携带配置。
不要把 Secret 直接放在命令行。systemd 的 EnvironmentFile、PM2 环境配置也要保护权限,并理解更新后需要 reload/restart 才能进入新进程。
泄漏后的处理
从 Git 删除文件不能让历史中的秘密失效。应立即吊销或轮换凭据,调查使用记录,清理历史并通知相关方。先轮换,再讨论如何美化提交历史。