当前位置:首页 > 文章列表 > 文章 > 软件教程 > VS Code Remote SSH 如何选择远程工作区的默认终端

VS Code Remote SSH 如何选择远程工作区的默认终端

来源:17golang原创 2026-09-12 11:36:16 0浏览 收藏

VS Code Remote SSH 连上服务器后,最容易遇到的不是 SSH 本身,而是“我明明改了默认终端,为什么新开的窗口还是另一个 shell”。原因通常是把本机 User 设置、Remote 设置和 Workspace 设置混在了一起。

官方地址:https://code.visualstudio.com/docs/remote/ssh

终端 profile 文档:https://code.visualstudio.com/docs/terminal/profiles

这篇文章用一个清晰的顺序解决它:先判断设置作用域,再定义远端 profile,最后用终端里的几个无副作用命令核对结果。文中的界面图是原创操作示意图,不是真实截图;命令和输出用于说明你应该观察什么。

先区分三个设置层级,再配置远端终端

Remote SSH 窗口左下角出现 SSH 主机后,当前窗口已经有了远程上下文。此时从 终端 菜单新建的集成终端,会在远程主机上运行,而不是回到本机 Terminal。

设置优先级可以简单理解为:默认设置是基础,User 设置影响全部窗口,Remote 设置只覆盖当前远程主机,Workspace 设置再覆盖当前项目。只想让某个服务器使用特定 shell 时,应优先打开命令面板中的 Preferences: Open Remote Settings,不要直接改本机 User Settings。

VS Code Remote Settings 中配置 Remote Bash 默认终端的操作示意图
图1:Remote SSH 工作区的终端配置示意,profile 名称与默认 profile 保持一致。

在 Remote Settings 中定义终端 profile

打开远程设置的 JSON 后,先定义一个 profile,再把默认 profile 指向同名配置。下面示例针对远程 Linux 主机,使用登录方式启动 Bash:

{
  // 为远程 Linux 工作区定义一个登录 Bash,名称就是下方要引用的 profile 名
  "terminal.integrated.profiles.linux": {
    "Remote Bash": {
      "path": "/bin/bash",
      "args": ["-l"]
    }
  },
  // 这里必须和上面的键名完全一致,否则新终端不会使用该 profile
  "terminal.integrated.defaultProfile.linux": "Remote Bash"
}

path 是远端机器上的 shell 路径,不能填写你本机的路径;args: ["-l"] 表示用登录 shell 启动,便于读取远端用户的登录环境。如果你使用的是 zsh,只需把路径和 profile 名换成远端实际存在的值。

保存后不要继续复用已经打开的旧终端。旧终端是在设置修改前创建的,它不会自动切换 profile;关闭它,再新建一个终端更容易判断配置是否生效。

用命令面板选择并启动默认终端

在 Remote SSH 窗口按 F1,执行 Terminal: Select Default Profile,选择 Remote Bash。也可以点击终端面板右上角新建终端按钮旁的下拉箭头,检查带“默认”标记的 profile。

这里有一个常见误区:选择默认 profile 只决定“以后新建终端使用谁”,不会把当前已经打开的终端进程改造成另一个 shell。因此验证时要新建终端,并观察终端标签是否显示 Remote Bash

如果下拉列表里没有这个名字,先检查当前窗口左下角是不是 SSH 主机,再检查配置键是否使用了远端平台对应的 linux。把 profiles.osx 写在远程 Linux 设置里,通常就是看不到 profile 的原因。

运行命令核对结果

终端启动后,可以用下面几条没有副作用的命令确认三个事实:shell 路径、工作区目录和当前主机。实际项目中把示例值替换成你的远程主机和目录即可。

# 先确认当前终端使用的 shell,再确认工作区目录
echo "$SHELL"
pwd

# 用固定文本标记当前 profile,便于在终端输出中快速核对
printf 'PROFILE=Remote Bash\nSTATUS=ready\n'
/bin/bash
/workspace/remote-demo
PROFILE=Remote Bash
STATUS=ready
VS Code Remote SSH 集成终端显示 Remote Bash 和工作区结果的示意图
图2:Remote SSH 终端结果示意,核对主机、工作区路径和 profile 状态。

如果 pwd 显示的是远程项目目录,左下角也显示 SSH 主机,基本可以确认终端上下文正确。若 shell 对了但目录不对,应继续检查 Workspace 根目录,而不是反复修改 terminal profile。

任务终端和交互终端不是一回事

日常敲命令使用的是交互终端;运行任务、调试或某些扩展操作时,VS Code 还可能使用 automation profile。官方配置中可以单独设置 terminal.integrated.automationProfile.linux,例如让任务使用更精简的 POSIX shell。

{
  // 交互终端继续使用 Remote Bash,保留登录环境
  "terminal.integrated.defaultProfile.linux": "Remote Bash",
  // 任务和调试单独使用 sh,减少复杂启动脚本带来的干扰
  "terminal.integrated.automationProfile.linux": {
    "path": "/bin/sh"
  }
}

这两个设置不要混为一谈:你在终端面板里看到的 profile 正常,不代表任务一定读取同一套 shell 环境。排查“手动执行成功、任务执行失败”时,优先比较这两个作用域。

常见问题

为什么我改完设置,当前终端没有变化?

因为 profile 只影响新建终端。关闭旧终端后重新创建,再看终端标签和 echo "$SHELL" 的输出。

Remote SSH 里应该配置 User Settings 还是 Remote Settings?

只针对一台远程主机时用 Remote Settings;希望所有项目都保持相同 shell 时才放到 User Settings。某个项目必须特殊处理,再使用 Workspace Settings 覆盖。

小结

这件事可以记成三步:远程窗口先确认作用域,profiles 先定义名字,defaultProfile 再引用同一个名字。新建终端后用 shell、目录和主机标记核对结果,遇到任务差异时再检查 automationProfile。这样排查会比反复切换本机终端快捷得多。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Go csv.Writer 如何保证导出文件末尾换行一致Go csv.Writer 如何保证导出文件末尾换行一致
上一篇
Go csv.Writer 如何保证导出文件末尾换行一致
Go http.Client 重定向时 CookieJar 如何判断目标域
下一篇
Go http.Client 重定向时 CookieJar 如何判断目标域
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    98次使用
  • OpenCompass大模型评测体系详解:功能、使用指南与应用场景
    OpenCompass
    OpenCompass是上海AI实验室推出的开源大模型评测平台,提供CompassKit、CompassHub和CompassRank三大核心组件,支持LLM及多模态模型的一站式标准化评估与排行榜查询。
    28次使用
  • SuperCLUE中文大模型评测基准:功能、能力维度与应用指南
    SuperCLUE
    SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
    253次使用
  • C-Eval中文评测基准:大语言模型多学科能力评估指南
    C-Eval
    深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
    180次使用
  • AI Prompt Library:免费AI提示词库,助力ChatGPT高效创作与营销
    AI Prompt Library
    探索AI Prompt Library免费资源库,涵盖营销、写作及多场景AI提示词。兼容ChatGPT、Claude等工具,一键复制优化输出,提升工作效率。
    115次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码