VSCode如何连接服务器_远程开发环境配置步骤详解

11次阅读

Remote-ssh连不上服务器主要是SSH配置或权限问题,需检查本地ssh命令是否可用、~/.ssh/config语法、私钥权限、公钥认证配置、VS Code Server手动安装及远程路径权限等。

VSCode如何连接服务器_远程开发环境配置步骤详解

Remote-SSH 插件安装后连不上服务器怎么办

连不上多数是 SSH 配置或权限问题,不是插件没装好。先确认本地 ssh 命令能直连:

ssh user@host -p 22

失败就别急着开 vscode——VSCode 的 Remote-SSH 本质就是调用你系统里的 ssh 客户端。

常见卡点:

  • ~/.ssh/config 中 Host 别名写错,或用了 Tab 缩进(必须空格)
  • 私钥权限太开放:chmod 600 ~/.ssh/id_rsa 才安全,OpenSSH 拒绝读取 644 或更宽松的密钥
  • 服务器禁用了密码登录,但本地没配好公钥——检查 ssh-copy-id user@host 是否成功,再看服务端 /etc/ssh/sshd_config 是否有 PubkeyAuthentication yes
  • VSCode 弹窗里选的是 “Connect to Host…” 而不是 “Connect to Host in Command Palette”,后者才能读取 ~/.ssh/config

远程服务器上没有安装 VS Code Server 怎么办

VSCode 远程开发依赖一个轻量服务端(vscode-server),首次连接时会自动下载并运行。但如果服务器不能访问 gitHub 或国内网络受限,就会卡在 “Installing VS Code Server” 步骤。

手动安装更可控:

  • VS Code 官方 server 下载页 找最新 commit ID(比如 5f7f1b09e871325d6253336614c858c5795b7441),拼出完整 URL:
    https://update.code.visualstudio.com/commit:5f7f1b09e871325d6253336614c858c5795b7441/server-linux-x64/stable
  • wget 下载压缩包,解压到 ~/.vscode-server/bin/5f7f1b09e871325d6253336614c858c5795b7441/
  • 确保该目录下有 bin/code-server 可执行文件,且权限为 755
  • 重启 VSCode,重试连接

连接后打开文件夹报错 “Command failed: stat”

这是远程路径权限或挂载问题,不是 VSCode 故障。典型错误信息含 stat: cannot stat 'xxx': Permission deniedNo such file or Directory,尤其出现在 NFS、CIFS 或容器挂载目录中。

排查方向:

  • 用终端登录服务器,执行 ls -ld /your/project/path,确认当前用户对该路径有 x(执行)权限——对目录来说,x 是进入前提
  • 如果路径在 docker volume 或 NAS 上,检查是否启用了 noexecnosuid 挂载选项,它们会阻止 vscode-server 启动子进程
  • 避免使用 root 用户连接:Remote-SSH 不推荐 root 登录,且部分发行版默认禁止;如必须,需在服务端 /etc/ssh/sshd_config 中设 PermitRootLogin yes 并重启 sshd

windows 本地连 Linux 服务器时中文乱码

根本原因是 VSCode 终端和远程 shell 的 locale 不一致。VSCode Remote 默认继承服务器环境变量,但 Windows 本地终端常缺 UTF-8 支持。

快速修复:

  • 在服务器上确认 locale 输出含 UTF-8,否则执行:
    export LANG=en_US.UTF-8
    export LC_ALL=en_US.UTF-8

    并写入 ~/.bashrc~/.zshrc

  • 在 VSCode 设置里搜 terminal integrated env,点击 “Edit in settings.json”,添加:
    "terminal.integrated.env.linux": {
    "LANG": "en_US.UTF-8",
    "LC_ALL": "en_US.UTF-8"
    }
  • 重启 VSCode 窗口(不是重载窗口),再打开集成终端

真正麻烦的是某些老版本 centos 7 默认没装 glibc-common,导致 localedef 无法生成 UTF-8 locale——得先 yum install glibc-common 再生成。

text=ZqhQzanResources