跳转到内容

ENOENT: no such file or directory, scandir Claude Code

Quick fix

在 VSCode Remote SSH 环境下,需在远程 Linux 服务器上单独配置 Claude Code 认证并创建缺失目录,本地配置不会自动同步。

报错原文
Error: Error: ENOENT: no such file or directory, scandir '/home/jack22/.claude/skills'

当使用 VSCode Remote SSH 连接到 Linux 服务器时,Claude Code 扩展及其后端进程实际运行在远程 Linux 环境中,而不是本地 Windows。因此,本地 Windows 上通过 cc-switch 修改的免登录配置(如 `~/.claude.json` 或环境变量)对远程服务器完全无效。远程服务器上的 Claude Code 找不到认证信息,抛出 `Could not resolve authentication method` 并要求登录。此外,由于远程服务器可能是全新环境,缺少 `~/.claude/skills` 等默认目录,导致启动时出现 `ENOENT` 报错。

  1. 在远程 Linux 服务器上打开终端,创建缺失的 skills 目录以消除 `ENOENT` 报错: ```bash mkdir -p ~/.claude/skills ```

  2. 在远程服务器上同步认证配置。你可以将本地 Windows 已经配置好的 `~/.claude.json` 文件内容复制到远程服务器的 `~/.claude.json` 中,或者直接在远程 Linux 环境中安装并运行 cc-switch 重新进行免登录配置。

ToolClaude Code
Version2.1.22
PlatformsWindowsLinux
为什么本地 Windows 已经免登录了,Remote SSH 还要登录?
VSCode Remote SSH 会将扩展后端运行在远程服务器上,远程服务器读取的是 Linux 环境下的配置,无法直接读取本地 Windows 的配置。
ENOENT 报错会导致 Claude Code 无法使用吗?
`ENOENT` 本身只是提示缺少 skills 目录,不会导致程序崩溃。真正导致无法使用的是后续的 `Could not resolve authentication method` 认证失败错误。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。