直接在files.exclude中添加"**/id_rsa":true等规则,可使私钥文件在VSCode资源管理器中彻底隐藏;该配置须写入项目级.vscode/settings.json,仅影响UI显示,不改动文件本身,且需区分于仅控制搜索的search.exclude。

直接在 files.exclude 里加规则,就能让私钥文件从资源管理器彻底消失
VSCode 不会自动识别哪些是密钥文件,也不会警告你误传了 id_rsa 或 private.key。它只管显示——所以你得自己动手过滤。最有效、最安全的做法,就是把这类文件明确写进 files.exclude,让它们在左侧资源管理器里“物理隐身”。这不是删除,不改文件权限,不影响终端或 Git,只影响你眼睛看到的内容。
-
**/id_rsa、**/id_dsa、**/private.key、**/ssh-key*这类模式要加**/前缀,否则只匹配根目录下同名文件 - 避免写
**/*.key这种宽泛规则——很多合法证书(如ca-bundle.crt里的cert.key)也会被误杀 - 如果项目用了多种密钥格式(比如 AWS 的
credentials、GCP 的application_default_credentials.json),建议单独列明,别依赖模糊匹配
files.exclude 必须写进 .vscode/settings.json,而不是用户设置
私钥文件的隐藏规则属于项目级敏感策略,不能放在全局用户设置里。一旦写进用户级 settings.json,所有项目都会应用该规则——可能误藏其他项目里本该可见的调试密钥或测试证书。工作区配置才是正解:它只对当前项目生效,且能随代码一起被团队共享(只要不把 .vscode 加进 .gitignore)。
- 确保项目根目录下存在
.vscode文件夹;没有就手动建一个 - 在其中新建
settings.json,内容必须是完整 JSON 对象,不能只写"files.exclude"字段 - 正确示例:
{ "files.exclude": { "**/id_rsa": true, "**/private.pem": true } } - 错误示例:
{"files.exclude": {"id_rsa": true}}—— 缺少**/,只匹配根目录下的id_rsa
别和 search.exclude 搞混,它对资源管理器无效
很多人搜“VSCode 隐藏密钥”时点开设置页面,看到 search.exclude 选项就顺手填了 **/id_rsa,结果资源管理器照常显示。这是典型混淆:search.exclude 只控制 Ctrl+Shift+F 全局搜索时跳过哪些路径,完全不影响左侧文件树。真正管侧边栏显示的,只有 files.exclude。
- 检查你改的到底是哪个字段:打开设置界面,搜
files.exclude,点右侧“在 settings.json 中编辑” - 如果已在用户设置里误配了
search.exclude,删掉它,避免干扰判断 - 验证是否生效:保存
.vscode/settings.json后,资源管理器会立刻刷新,无需重启 VSCode
隐藏后仍可能被 GitLens、Remote-SSH 等插件“翻出来”
files.exclude 是纯 UI 层过滤,插件可以绕过它直接读取文件系统。比如 GitLens 在“文件历史”视图里仍会列出被隐藏的 id_rsa 修改记录;Remote-SSH 扩展连接时若检测到 ~/.ssh/config 引用了本地私钥,也可能在状态栏提示相关路径。这些不是 bug,而是设计使然。
- 想确认是否真被隐藏?关掉所有扩展,再看资源管理器 —— 如果还显示,说明配置写错了
- Git 扩展默认不会隐藏
.gitignore里的文件,除非你开了git.ignoreLegacyExclude并设为false;但这和files.exclude无关,别指望靠 .gitignore 替代 - 真正的防护底线不在 VSCode 设置里:私钥文件本身不该进 Git,也不该放在项目目录中 ——
files.exclude只是最后一道视觉保险











