VSCode Live Share 共享终端需显式开启:启动会话时在面板中勾选“Share Terminal”,默认不启用;共享后权限由 "terminal": "view"(只读)或 "terminal": "write"(可执行命令)控制,配置于 .vsls.json 生效。

VSCode Live Share 怎么共享终端?
默认不共享终端,必须显式开启。Live Share 启动后,终端是隔离的——访客看到的是自己本地终端,不是主机的。要让对方操作或查看你的终端,得在会话启动时或配置中明确允许。
最直接的方式是在启动会话时勾选:Share Terminal。点击状态栏 Live Share 图标 → 选择 Start Collaboration Session → 弹出面板里勾上 Share Terminal 复选框(它默认不勾)→ 点击 Start。此时生成的链接就带终端共享能力。
- 如果用命令面板启动,输入
Live Share: Start Collaboration Session,后续步骤同上 - 若已启动会话但忘了勾选,只能停止当前会话,重新启动并勾选
-
Share Terminal是会话级开关,不能对单个终端实例单独控制
终端共享权限怎么细粒度控制?
勾选 Share Terminal 只是“开启共享”,不代表访客能随便执行命令。真正决定他们能不能敲命令、删文件、起服务的,是 "terminal" 权限配置项,它在 .vsls.json 或全局 settings.json 中生效。
比如想让访客只能看输出、不能输命令,就设为 "terminal": "view";想允许完整交互,设为 "terminal": "write"(注意不是 true 或 false)。
-
"terminal": "view":访客终端只读,能看到命令回显和错误,但输入被禁用 -
"terminal": "write":访客可输入任意命令,等效于在主机终端中操作 - 该配置需写在
.vsls.json(项目根目录)中才对本次会话生效;写在settings.json会影响所有后续会话 - 配置后无需重启会话,Live Share 会在下一次连接时自动应用
为什么访客连不上主机终端?常见卡点
即使勾了 Share Terminal,访客仍可能看到空白终端或“Connecting…”一直转圈。这不是网络问题,大概率是权限或环境冲突导致的。
- 主机终端正在运行阻塞型命令(如
node server.js未加&后台),会导致新连接挂起 - 主机启用了 PowerShell 的
ConstrainedLanguageMode,会拒绝远程终端初始化 - 访客端 VSCode 版本太旧(
- 企业防火墙拦截了 WebSocket 连接(Live Share 终端走的是
wss://隧道,不是普通 SSH) - 没登录 Microsoft/GitHub 账户 ——
liveshare.authentication.enabled为true时,未认证用户连终端界面都进不去
安全提醒:终端共享比代码编辑更危险
很多人以为“共享终端”只是看个日志,其实一旦设成 "write",访客就能执行 rm -rf /、curl | bash、修改 /etc/hosts 等任意操作——Live Share 不做命令白名单校验,也不沙箱化。
生产环境协作务必禁用终端写入:"liveshare.allowGuestTerminal" 设为 false,或至少设 "terminal": "view"。如果真需要调试,优先用共享调试会话(Debug tab)或共享本地服务器(Share Server),它们有更严格的访问边界。











