当前位置: 首页 > news >正文

VS Code 1.90 远程开发配置:Ubuntu 服务器 SSH 连接与 5 个必备插件

VS Code 1.90 远程开发配置:Ubuntu 服务器 SSH 连接与 5 个必备插件

对于需要在远程 Linux 服务器上开发的程序员来说,VS Code 的远程开发功能简直是生产力神器。想象一下:你可以在 Windows 或 macOS 的舒适环境中编写代码,而实际执行和调试都在强大的 Ubuntu 服务器上进行。本文将手把手教你配置 VS Code 1.90 与 Ubuntu 服务器的 SSH 连接,并推荐 5 个能极大提升远程开发效率的插件。

1. 准备工作:SSH 密钥对配置

在开始之前,确保你的本地机器(Windows/macOS)和远程 Ubuntu 服务器都已安装 OpenSSH。以下是创建 SSH 密钥对的详细步骤:

# 在本地机器上生成 SSH 密钥对 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

执行上述命令后,你会被提示选择密钥保存位置(默认是~/.ssh/id_rsa)和设置密码(可选但推荐)。生成成功后,你会看到两个文件:

  • id_rsa:私钥,必须妥善保管
  • id_rsa.pub:公钥,需要上传到服务器

接下来,将公钥上传到 Ubuntu 服务器:

# 将公钥复制到远程服务器(替换username和server_ip) ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip

如果ssh-copy-id不可用,可以手动操作:

# 在服务器上创建 .ssh 目录(如果不存在) ssh username@server_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh" # 追加公钥到 authorized_keys cat ~/.ssh/id_rsa.pub | ssh username@server_ip "cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

2. 优化 SSH 连接配置

为了简化连接过程并提高安全性,建议配置~/.ssh/config文件:

Host dev-server HostName your.server.ip User your_username Port 22 IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes ServerAliveInterval 60 TCPKeepAlive yes

这个配置文件做了以下优化:

  • 使用别名代替 IP 地址
  • 指定使用的密钥文件
  • 设置连接保持选项防止超时断开
  • 限制只使用指定的密钥文件

3. VS Code 远程开发环境配置

在 VS Code 中安装 "Remote - SSH" 扩展后,按F1打开命令面板,输入 "Remote-SSH: Connect to Host",选择你配置的服务器别名(如dev-server)。首次连接时,VS Code 会在服务器上安装必要的组件,这可能需要几分钟时间。

连接成功后,你会在左下角看到远程连接的指示器。此时,所有扩展和终端都将在远程服务器上运行,而界面仍然显示在你的本地机器上。

4. 5 个必备远程开发插件

4.1 Remote - SSH (Microsoft)

这是远程开发的核心插件,允许你:

  • 直接在远程文件系统上工作
  • 使用远程终端
  • 调试远程运行的应用程序
  • 在远程环境中运行扩展

提示:安装此插件后,VS Code 会自动安装配套的 Remote - SSH: Editing Configuration Files 插件,方便你编辑 SSH 配置文件。

4.2 C/C++ (Microsoft)

对于 C/C++ 开发者,这个插件提供了:

  • 智能代码补全 (IntelliSense)
  • 调试支持
  • 代码导航功能
  • 代码格式化

配置示例 (c_cpp_properties.json):

{ "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/usr/include/**" ], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu17", "cppStandard": "gnu++14", "intelliSenseMode": "linux-gcc-x64" } ], "version": 4 }

4.3 Python (Microsoft)

Python 开发者必备,功能包括:

  • 自动补全
  • linting
  • 调试
  • 单元测试支持
  • Jupyter Notebook 集成

4.4 Docker (Microsoft)

即使你主要进行远程开发,Docker 插件仍然非常有用:

  • 管理远程服务器上的容器
  • 构建和运行 Docker 镜像
  • 查看容器日志
  • 与远程开发环境无缝集成

4.5 GitLens (GitKraken)

这个强大的 Git 扩展在远程开发中特别有用:

  • 查看代码作者信息
  • 浏览 Git 历史
  • 比较不同版本
  • 直接在编辑器中执行 Git 操作

5. 高级配置技巧

5.1 端口转发

有时你需要访问远程服务器上运行的 web 应用或其他服务。VS Code 的端口转发功能可以轻松实现:

  1. F1打开命令面板
  2. 输入 "Forward a Port"
  3. 选择要转发的端口号

转发后,你可以通过localhost:端口号访问远程服务。

5.2 多根工作区

如果你需要同时处理多个相关项目,可以设置多根工作区:

  1. 打开一个远程文件夹
  2. 通过命令面板执行 "Add Folder to Workspace"
  3. 选择另一个文件夹添加

5.3 自定义终端

在远程开发中,终端是必不可少的工具。你可以通过以下设置优化终端体验:

{ "terminal.integrated.fontFamily": "'Courier New', monospace", "terminal.integrated.fontSize": 14, "terminal.integrated.scrollback": 10000, "terminal.integrated.cursorStyle": "underline", "terminal.integrated.localEchoExcludePrograms": ["vim", "nano", "tmux"] }

6. 性能优化

远程开发可能会遇到性能问题,特别是网络连接不佳时。以下是一些优化建议:

  1. 文件排除:在设置中排除不需要的文件(如node_modules,build等)

    { "files.watcherExclude": { "**/.git/objects/**": true, "**/.git/subtree-cache/**": true, "**/node_modules/**": true, "**/build/**": true } }
  2. 禁用不必要的扩展:只在远程环境中启用真正需要的扩展

  3. 使用轻量级主题:减少图形渲染负担

  4. 调整自动保存间隔

    { "files.autoSave": "afterDelay", "files.autoSaveDelay": 5000 }

7. 常见问题解决

7.1 连接失败

如果遇到连接问题,可以尝试:

  • 检查 SSH 配置是否正确
  • 验证服务器上的 SSH 服务是否运行
  • 查看防火墙设置是否阻止了连接
  • 增加 SSH 日志级别:
    Host dev-server LogLevel DEBUG3

7.2 扩展无法正常工作

某些扩展可能需要特殊配置才能在远程环境中工作:

  • 确保扩展支持远程开发
  • 检查扩展是否已在远程环境中安装
  • 查看扩展的文档了解远程使用说明

7.3 文件同步问题

如果遇到文件不同步的情况:

  • 尝试手动刷新文件资源管理器
  • 检查文件权限设置
  • 确保没有网络连接问题

通过以上配置和优化,你将获得一个强大而高效的远程开发环境,既能享受本地开发的便利性,又能利用远程服务器的强大计算能力。

http://www.cnnetsun.cn/news/3309935.html

相关文章:

  • Maven 依赖作用域实战:provided 与 compile 在 Spring Boot 3.2 项目中的 5 个关键差异
  • C++ JSON库nlohmann/json:现代C++数据序列化与配置管理实战
  • 零基础转行AI:2个月掌握NLP自然语言处理实战指南
  • 俄语专业听力提升:从术语积累到实战训练全解析
  • 基于PIC18LF46K40与压电发声器的智能警报系统设计
  • STM32L433RC-P控制直流电机:从PWM调速到PID闭环
  • HBuilderX 4.64 多端发布实战:3分钟完成微信/支付宝/百度小程序一键打包
  • AI教材写作秘籍:利用AI工具,快速完成高校教材的高质量编写!
  • MaxCompute MapJoin 实战:512MB 内存限制下 3 种小表判定与优化策略
  • EVO 1.22.0 评估VINS-Fusion:3种轨迹格式转换与APE/RPE结果深度解读
  • STM32与ADS131M02高精度ADC方案设计与优化
  • UE4进度条深度定制:从原理到实战的动态效果与视觉优化
  • mkcert v1.4.4 配置 Vue/UniApp 本地 HTTPS:3 分钟解决摄像头 API 调用限制
  • STM32与PAM8904构建可编程音频警报系统
  • 2026年万方AI鉴定达标指南:万方论文AI鉴定超标4.8元完整处理方案
  • 自动驾驶范式变革:从模块化到端到端架构的核心挑战与工程实践
  • 人形机器人关节模组四层穿透式测试实战指南
  • AI视频生成实战:即梦AI Seedance 2.5从提示词到镜头语言全解析
  • VLA模型:具身智能的视觉-语言-动作统一操作系统
  • PilotGo-plugin-syscare前端实现详解:基于Vue的热补丁管理界面
  • 2026年期刊投稿AI检测应对工具推荐:投稿前免费自检AIGC率完整工具使用指南
  • Cocos Creator实战:从零开发微信小游戏《疯狂打螺丝》
  • DriveDreamer-Policy:面向物理一致性的生成式自动驾驶世界模型
  • 宇树科技命运推演:从机器人硬件到产线操作系统
  • 延迟分支技术解析:以MIPSsim为例,对比38周期与26周期的性能差异
  • 人形机器人12大核心部件国产化突破与选型指南
  • 3大核心功能深度解析:G-Helper如何让你的华硕笔记本重获新生
  • AI编程进阶:系统化复用成熟方案提升Codex与Claude Code代码质量
  • Hermes Agent 5分钟入门:从安装到首条有效对话全链路解析
  • JetBrains Toolbox 与独立安装:PyCharm 右键菜单配置的 3 点核心差异