news 2026/7/12 13:35:25

VS Code 1.90 远程开发配置:Ubuntu Server 22.04 3步实现SSH免密连接

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VS Code 1.90 远程开发配置:Ubuntu Server 22.04 3步实现SSH免密连接

VS Code 1.90 远程开发配置:Ubuntu Server 22.04 3步实现SSH免密连接

对于需要在远程Linux服务器上开发的程序员来说,图形界面的缺失常常让人头疼。想象一下这样的场景:你正在Windows或macOS上工作,但项目需要在Ubuntu Server 22.04上运行和测试。传统的解决方案要么是通过繁琐的命令行操作,要么是依赖不稳定的图形界面转发。而VS Code的Remote-SSH扩展彻底改变了这一局面,让你能在本地享受完整的IDE体验,同时代码实际运行在远程服务器上。

1. 环境准备与SSH密钥生成

在开始配置之前,我们需要确保两端环境就绪。本地机器可以是Windows 10/11或macOS,而远程服务器则需要是Ubuntu Server 22.04 LTS。VS Code 1.90版本对远程开发功能进行了多项优化,特别是SSH连接稳定性和文件同步效率。

生成SSH密钥对是免密连接的基础。打开本地终端(Windows用户可使用PowerShell或WSL终端),执行以下命令:

ssh-keygen -t ed25519 -C "vscode_remote_dev"

这个命令会生成更安全、更快速的Ed25519密钥对。系统会提示你输入保存位置(直接回车使用默认位置)和密码短语(可选,为安全性建议设置)。生成的密钥默认保存在:

  • Windows:C:\Users\你的用户名\.ssh\
  • macOS/Linux:~/.ssh/

查看生成的公钥内容,你将需要它来配置服务器:

cat ~/.ssh/id_ed25519.pub

输出应该类似于:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJv6Q5JzJ7VgJjK7X9Xm6wT1pLmNnFtZdJk1q2bY5Gb vscode_remote_dev

提示:如果计划连接多个服务器,可以为每个服务器生成独立的密钥对,使用-f参数指定不同文件名,如ssh-keygen -t ed25519 -f ~/.ssh/vscode_server1_ed25519

2. 服务器端配置与密钥部署

现在我们需要将公钥部署到Ubuntu Server上。首先确保服务器已安装OpenSSH Server:

sudo apt update && sudo apt install openssh-server -y sudo systemctl enable --now ssh

检查SSH服务状态确认其正常运行:

sudo systemctl status ssh

接下来将本地公钥添加到服务器的授权密钥中。有两种常用方法:

方法一:使用ssh-copy-id(最简单)

ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP

方法二:手动复制(当ssh-copy-id不可用时)

  1. 将公钥内容复制到剪贴板
  2. SSH登录服务器:ssh 用户名@服务器IP
  3. 在服务器上执行:
    mkdir -p ~/.ssh echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh

为增强安全性,建议修改服务器SSH配置:

sudo nano /etc/ssh/sshd_config

进行以下关键修改:

PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes ChallengeResponseAuthentication no

保存后重启SSH服务:

sudo systemctl restart ssh

注意:在禁用密码认证前,务必确认密钥登录正常工作,否则可能被锁在服务器外

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

现在进入最激动人心的部分——配置VS Code的Remote-SSH扩展。首先确保你已安装VS Code 1.90或更高版本。

  1. 安装Remote-SSH扩展:

    • 打开VS Code扩展市场(Ctrl+Shift+X)
    • 搜索"Remote - SSH"并安装
  2. 配置SSH连接:

    • 点击左下角绿色"远程窗口"图标
    • 选择"Remote-SSH: Connect to Host..." > "Configure SSH Hosts..."
    • 选择你的SSH配置文件(通常是~/.ssh/config

添加服务器配置示例:

Host my_ubuntu_server HostName 192.168.1.100 User devuser IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes

保存后,你可以在VS Code的远程资源管理器中看到新配置的服务器。点击连接,VS Code会在服务器上自动安装必要的服务端组件。首次连接可能需要几分钟时间。

连接成功后,你会注意到左下角显示"SSH:your-server-name",表示你已成功进入远程开发环境。现在你可以:

  • 打开远程文件夹(如/home/devuser/projects
  • 安装针对远程环境的扩展(C++、Python等)
  • 使用集成终端直接在服务器上执行命令

高级配置技巧

  • 对于跳板机场景,配置SSH代理转发:
    Host jump_host HostName jump.example.com User jumpuser IdentityFile ~/.ssh/jump_key Host target_server HostName 192.168.100.10 User targetuser IdentityFile ~/.ssh/target_key ProxyJump jump_host
  • 优化性能:对于高延迟连接,在SSH配置中添加:
    Host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600

4. 常见问题排查与性能优化

即使按照步骤操作,有时也会遇到连接问题。以下是三个最常见的故障及其解决方案:

问题一:VS Code卡在"Setting up SSH Host XX: Copying VS Code Server to host with scp"

解决方案

  1. 手动删除服务器上的旧版本:
    rm -rf ~/.vscode-server/bin/*
  2. 在VS Code设置中搜索"remote.SSH.enableRemoteCommand",启用它
  3. 或者使用预发布版本的Remote-SSH扩展(往往包含最新修复)

问题二:SSH连接超时或被拒绝

排查步骤

  1. 检查网络连通性:
    ping 服务器IP
  2. 验证SSH端口是否开放:
    telnet 服务器IP 22
  3. 检查服务器SSH服务状态:
    sudo systemctl status ssh

问题三:文件同步缓慢

优化方案

  1. 在VS Code设置中启用"remote.SSH.useLocalServer"
  2. 排除大型或不必要的文件同步,创建.vscode/settings.json
    { "remote.SSH.exclude": [ "**/node_modules", "**/.git", "**/__pycache__" ] }
  3. 考虑使用rsync替代原生同步:
    rsync -avz --exclude='node_modules' ./project devuser@server:/path/to/project

性能对比表:

配置项默认值优化值效果提升
压缩传输关闭开启减少30-50%传输量
保持连接关闭开启减少重复认证时间
本地服务器关闭开启降低CPU占用20%
排除规则自定义减少同步文件量60%+

对于C++/Python开发者,连接成功后还需要配置语言环境:

  1. 安装对应扩展(如C++、Python)
  2. 配置调试环境(创建.vscode/launch.json
  3. 设置代码格式化工具(clang-format、autopep8等)

示例Python调试配置:

{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true } ] }

通过以上步骤,你将获得一个无缝的远程开发体验,就像在本地工作一样流畅,同时享受服务器端的强大计算能力和环境一致性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 13:34:20

​C++面向对象思想及封装、继承、多态、模板编程

目录 一、OOP 四大核心特性: 多态 1. 静态多态(编译多态) 2. 动态多态(运行多态) 5. 纯虚函数 & 抽象类 6. 重写 (override)、重载 (overload)、重定义 (hide) 三者区别 二、模板(泛型编程&#…

作者头像 李华
网站建设 2026/7/12 13:33:52

基于STC89C52与DAC0832的五波形信号源:正弦/方波/三角/锯齿/梯形波一键切换,含完整仿真与硬件实现资料

本文还有配套的精品资源,点击获取 简介:一套开箱即用的51单片机波形信号发生器方案,主控采用STC89C52或兼容型号,搭配DAC0832数模转换芯片输出五种标准波形——正弦波、方波、三角波、锯齿波和梯形波,所有波形频率固…

作者头像 李华
网站建设 2026/7/12 13:33:32

openEuler/install-scripts开发者指南:如何定制专属安装流程?

openEuler/install-scripts开发者指南:如何定制专属安装流程? 【免费下载链接】install-scripts scripts for system installation 项目地址: https://gitcode.com/openeuler/install-scripts 前往项目官网免费下载:https://ar.openeu…

作者头像 李华
网站建设 2026/7/12 13:33:20

终极指南:kspack-c入门到精通,3步掌握结构化数据处理

终极指南:kspack-c入门到精通,3步掌握结构化数据处理 【免费下载链接】kspack-c The components for structure data encode and decode with C/C 项目地址: https://gitcode.com/openeuler/kspack-c 前往项目官网免费下载:https://ar…

作者头像 李华
网站建设 2026/7/12 13:32:13

STM32F446RE与AD7175-8高精度数据采集系统设计

1. AD7175-8与STM32F446RE的硬件协同设计AD7175-8是ADI公司推出的32位Σ-Δ型ADC芯片,具有8个差分/16个单端输入通道。当与STM32F446RE搭配使用时,可以构建一个高性能的信号采集系统。STM32F446RE作为主控MCU,其180MHz的Cortex-M4内核和硬件浮…

作者头像 李华