VS Code 通过 Remote-SSH 扩展实现远程开发,依赖 SSH 连通性、自动部署 vscode-server 及正确权限配置;所有编辑、终端、调试、Git 均在远程执行,文件操作直写远程磁盘。

VS Code 本身不直接“连接”服务器,而是通过 Remote-SSH 扩展实现远程开发——它把本地 VS Code 的 UI 和编辑能力,无缝对接到远程机器的文件系统、终端和调试环境。关键不是“连上”,而是让 ssh 能通、vscode-server 能自动装、权限和路径不出错。
确认 SSH 能从命令行直连
这是所有后续操作的前提。VS Code 的 Remote-SSH 完全复用你系统的 ssh 配置和密钥。
- 在终端运行
ssh user@host,必须能免密登录(或至少能输密码进系统) - 检查
~/.ssh/config是否配置了别名(比如Host myserver),Remote-SSH 会识别并显示为可选目标 - 如果用密码登录,确保远程服务器的
/etc/ssh/sshd_config中PasswordAuthentication yes已启用(且重启了sshd) - Windows 用户若用 WSL,注意默认走的是 WSL 的 SSH 配置,不是 PowerShell 的;建议统一用 WSL 终端测试连通性
安装 Remote-SSH 扩展并触发远程连接
扩展名是 Remote - SSH(Microsoft 官方出品,ID:ms-vscode-remote.remote-ssh),不是“SSH FS”或“SFTP”类插件。
- 安装后,左下角状态栏会出现绿色的
Open Folder图标,点击 → “Connect to Host…” → 选你配置好的Host或手动输入user@host - 首次连接时,VS Code 会在远程用户家目录下自动拉取并启动
vscode-server(路径类似~/.vscode-server/bin/xxx/),整个过程依赖远程有curl或wget+ 解压工具 - 如果卡在 “Installing VS Code Server”,检查远程是否能访问
update.code.visualstudio.com(国内网络可能需代理,或手动下载vscode-server-linux-x64.tar.gz放入对应 bin 目录)
打开远程文件夹时路径权限和符号链接问题
VS Code 远程窗口打开的是远程文件系统视图,但它的行为受远程用户权限和 shell 初始化影响。
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
- 不要用
sudo code .连远程 ——vscode-server必须以当前登录用户身份运行,否则插件、终端、调试全部失效 - 如果远程
$HOME下有.bashrc或.zshrc中设置了非标准$PATH(比如加了/opt/python/bin),Remote-SSH 默认不会加载它们 —— 需在~/.ssh/config对应 Host 块里加一行:SetEnv VSCODE_SSH_HOST=1,并在远程~/.bashrc开头加判断:if [ -n "$VSCODE_SSH_HOST" ]; then source ~/.bashrc; fi - 符号链接(symlink)跨文件系统时可能显示为空白或报错,这不是 VS Code 问题,而是远程
ls -l实际就无法解析;用readlink -f确认真实路径再打开
调试、终端和 Git 操作都跑在远程,但体验像本地
所有动作实际发生在远程:终端执行的是远程 bash,Git 提交走的是远程 git 二进制,断点调试调用的是远程 python 或 node 进程。
- 终端默认是远程 shell,但你可以右键终端标签页 → “New Terminal” → 切换到
bash/zsh/fish,前提是远程已安装 - Git 配置必须在远程设置(
git config --global user.name),本地的~/.gitconfig不生效 - 调试器(如 Python 的
launch.json)里的"program"路径必须写远程绝对路径(如/home/user/project/main.py),不是你本地的路径 - 大文件搜索(
Ctrl+Shift+F)走的是远程ripgrep,如果没装,VS Code 会提示安装;别指望它搜你本地磁盘
最常被忽略的一点:Remote-SSH 不是 FTP 同步工具,它不自动同步文件。你看到的“文件树”就是远程实时状态,任何编辑、保存、删除都直接作用于远程磁盘——误删没有回收站,也没有本地备份,操作前确认清楚目标环境。









