多人调试必须走Remote-SSH,Live Share仅可叠加使用;须共用部署用户(如devteam)、禁用密码登录、统一SSH密钥与远程配置,确保launch.json、gdb路径、Python解释器等全部指向真实远程环境。

多人调试必须走 Remote-SSH,Live Share 不能替代它;共享服务器必须共用部署用户,否则 launch.json 和 gdb 路径全错。
Remote-SSH 是多人调试的唯一可靠路径
VS Code 的调试器(如 python、cppdbg)默认在本地进程里运行,但多人协同调试要求所有断点、变量、堆栈都基于同一套环境和文件系统。只有 Remote-SSH 能确保 launch.json 中的 program、cwd、miDebuggerPath 等字段指向远程真实路径,且调试器进程真正在服务器上启动。
- Live Share 启动的调试会话,Guest 端看到的是 Host 本地路径映射,一旦 Host 和 Guest 文件系统结构不一致(比如路径大小写、挂载点不同),就会报
No such file or directory - Remote-SSH 连入后,所有
tasks.json、launch.json、env变量都从远程~/.vscode-server加载,天然一致 - 验证是否生效:在远程终端执行
ps aux | grep gdb或pgrep -f "ptvsd",能看到调试进程确实在服务器上运行
共享服务器必须禁用密码登录 + 共用部署用户
多人共用一台服务器时,最常踩的坑是各自建账号,导致 ~/.vscode-server 目录分散、扩展安装不一致、Python interpreter 路径错乱。必须统一为一个部署用户(如 devteam),并通过 SSH 密钥强制登录。
- 服务器端
/etc/ssh/sshd_config必须设为:PasswordAuthentication no、PubkeyAuthentication yes、AllowUsers devteam - 所有成员使用同一份私钥(如
~/.ssh/team_id_rsa),权限严格为600,禁止生成个人密钥 - 本地
~/.ssh/config统一配置:Host team-dev、HostName 192.168.50.10、User devteam、IdentityFile ~/.ssh/team_id_rsa - 连入后检查
whoami和pwd,确保所有人工作目录都是/home/devteam/project,不是/home/xxx/project
Live Share 只能叠加在 Remote-SSH 之上
很多人误以为装了 Live Share 就能直接协作调试,结果断点不同步、终端打不开、gdb 找不到符号表。根本原因是 Live Share 默认把调试器跑在 Host 的本地进程里——而你真正需要的是“所有人在同一台远程机器上调试同一个进程”。
- 正确流程:先通过 Remote-SSH 连入服务器 → 再点击状态栏
Live Share按钮 → 选择Start Collaboration Session - 此时 Host 的
launch.json才实际生效,Guest 看到的进程 ID、内存地址、调用栈全部来自远程服务器 - 务必禁用
liveshare.shareTerminal:它默认共享的是 Host 的本地终端,和远程环境无关;应改用 Remote-SSH 自带的Ctrl+`终端 - 若需共享调试控制权,Host 启动时勾选
Allow guests to control debugging,而非依赖默认设置
调试 Python 时 interpreter 和 launch.json 必须对齐
多人调试 Python 最容易出问题的地方是解释器路径和 launch.json 中的 python 字段不一致,尤其当服务器上有多个 conda 环境时。
- 所有成员必须通过 Remote-SSH 连入后,在命令面板中执行
Python: Select Interpreter,从远程列表中选择,而不是手动填本地路径 -
launch.json中不要硬编码"python": "/home/devteam/miniconda3/envs/pytorch/bin/python",应改用变量:"python": "${command:python.interpreterPath}" - 验证方式:在远程终端中运行
which python,再对比调试器启动日志里打印的python path是否完全一致 - 如果项目依赖
venv,确保.vscode/settings.json中有"python.defaultInterpreterPath": "./venv/bin/python",且该路径对所有成员可读
最易被忽略的一点:Remote-SSH 连入后,所有插件必须安装在远程侧(状态栏显示 “Dev Container” 或 “SSH: xxx”),任何在本地装的插件对调试器不可见。哪怕只差一个 ms-python.python 版本不一致,ptvsd 就可能无法注入进程。


















