惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Commits to openclaw:main
Recent Commits to openclaw:main
U
Unit 42
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
博客园 - Franky
云风的 BLOG
云风的 BLOG
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Palo Alto Networks Blog
NISL@THU
NISL@THU
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
C
Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Spread Privacy
Spread Privacy
小众软件
小众软件
T
Threat Research - Cisco Blogs
Project Zero
Project Zero
博客园 - 三生石上(FineUI控件)
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Register - Security
The Register - Security
The Hacker News
The Hacker News
F
Fortinet All Blogs
Security Latest
Security Latest
Cisco Talos Blog
Cisco Talos Blog
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
T
The Exploit Database - CXSecurity.com
量子位
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
G
GRAHAM CLULEY
D
DataBreaches.Net
P
Privacy International News Feed
Y
Y Combinator Blog
Simon Willison's Weblog
Simon Willison's Weblog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
P
Proofpoint News Feed

博客园 - smil、梵音

C语言标准(C89/C90)中的32个关键字全列表 Windows 系统的 vscode 通过 Remote-SSH 连接虚拟机的 Ubuntu 系统运行 C 语言的代码 Windows 系统 vscode Remote-SSH 远程连接虚拟机里面的Ubuntu系统的失败处理 Ubuntu虚拟机里安装了SSH,开启SSH服务的时候报错 Ubuntu系统里面安装 g++ ,sudo apt update 的含义 C语言是不是必须得通过gcc编译成可执行的程序? c语言用gcc编译过后,执行 ./hello.c 报错 ./hello.c: 权限不够 windows系统的虚拟机里面的Ubuntu系统安装VMware Tools Ubuntu的应用中心搜索 vscode 的时候,筛选条件为Snap包、debian包是什么意思,如何安装vscode Ubuntu系统是否就是Linux系统,安装软件和Windows系统有何区别 Ubuntu系统里面vscode运行C语言的第一个 Hello World 程序 vscode 中安装C/C++相关的插件 Ubuntu 安装一个轻量级的中文输入法Fcitx5 Ubuntu安装百度网盘 Ubuntu系统里面安装vscode 乌版图系统截屏快捷键 Ubuntu 系统里面运行C++ TortoiseGit 的安装与汉化 安装虚拟机+ ubuntu24.04 系统 联想小新安装 ubuntu24.04 双系统 | 安装乌版图系统 | windows安装 ubuntu24.04 双系统 利用faststone capture制作gif动图 Sublime Text 常用编辑快捷键速查表 vscode 中的 css 样式代码不显示折叠图标的解决方法 IDEA中git的Cherry-Pick的可视化使用(个人总结) IDEA中git的Cherry-Pick的使用 IDEA中如何实现git的cherry-pick可视化操作? Windows11添加系统环境变量 VS Code——Live Server的简介、安装与使用 vue3中 pinia 的运用 vscode使用region折叠任意想折叠的代码块 我本地分支代码推送到远程的另一个分支,怎么操作? idea中打开多文件编辑器换行展示 本地代码强制覆盖远程代码,本地代码强制和远程某一个分支保持一致,再覆盖远程代码 css头部固定,内容区域高度自适应剩余的屏幕高度,内容区域过多显示竖向滚动条 flex为1的元素宽度自适应的同时,文本太长的时候显示省略号 idea中项目文件目录消失如何解决 vue3插入图片 vue3使用构建工具时,关于本地图片的引用 vue3 中父组件调用子组件的方法,子组件是不是必须暴露方法 如何改变type="checkbox"的input复选框的样式 vue3中非父子组件、非祖先-后代组件之间传递方法 解决 IntelliJ IDEA 中项目右键没有 Git 菜单的问题 关于 ref 为 DOM 元素或子组件实例动态创建引用的总结 Git 合并时出现 Please enter a commit message to explain why this merge is necessary 问题解决 拉取远程其他分支的最新代码
VS Code的Remote - SSH功能
smil、梵音 · 2026-06-23 · via 博客园 - smil、梵音

前提:我个人是windows系统,安装的是虚拟机,虚拟机里面安装的Ubuntu的系统。看了 《Linux环境搭建详解》的文章之后,里面讲解了虚拟机的安装,Ubuntu系统安装,xshell、xftp、vscode远程连接,我个人不是很懂,故问的deepseek,现在记录一下。

一、 VS Code的Remote - SSH功能

我的疑问:vscode 远程连接的原理、步骤,怎么运行的,有什么便捷之处,在工作中如何运用等。

俗话说的“VS Code的Remote连接”,官方名称就是 Remote - SSH 。

1、VS Code的Remote - SSH功能在Windows上怎么用?

操作流程:

  1. 在你的 Windows系统 中打开 VS Code。

  2. 安装一个叫 Remote - SSH 的插件。

  3. 输入你Ubuntu虚拟机的 IP地址 和 用户名/密码

  4. VS Code就会像“远程桌面”一样,连上你虚拟机里的Ubuntu系统。

2. 连接上之后,代码到底在哪里运行?(核心原理)

这是你理解偏差最大的地方,也是这个模式最精妙之处。请记住下面三句话:

  • 写代码的界面(你眼睛看到的窗口)在 Windows 上运行。

  • 存放代码和编译代码的动作g++make)在 虚拟机Ubuntu 上运行。

  • 传输方式:通过SSH网络协议,实时传递指令和文件。

通俗理解:
你可以把Windows上的VS Code想象成一个“遥控器”,把虚拟机里的Ubuntu想象成“被遥控的电脑”

  • 你拿着“遥控器”(Windows VS Code)点击“编译”按钮。

  • 这个指令通过网络发给“被遥控的电脑”(Ubuntu)。

  • Ubuntu收到指令,用它的g++编译器把代码变成可执行文件。

  • 最后把结果显示在你的“遥控器”屏幕上。

结论:你是在Windows上编写代码,但代码实际存储在虚拟机里,也是由虚拟机里的g++负责编译和运行。你的Windows只负责显示界面和处理键盘鼠标输入。

3. 这样做有什么好处?(针对你的办公场景)

对于你“公司办公电脑,抽空学C++”的情况,这种模式有三大“杀手锏”优势:

  • 彻底告别鼠标卡顿(解决你之前的痛点):你不需要再盯着VMware那个厚重的窗口了。你在Windows原生界面下操作VS Code,鼠标丝滑流畅,复制粘贴代码(从网页或PDF里复制)毫无障碍。

  • 极致节省资源,办公永不会卡:VMware Workstation渲染Ubuntu桌面(GNOME)非常吃内存和CPU。而用了Remote模式,你可以把虚拟机的桌面直接关掉(或者最小化后台运行)。VS Code连接Ubuntu只传输文本指令,几乎不占用额外资源。你的Windows办公软件(钉钉、WPS、浏览器)会更流畅。

  • 无缝隔离:你可以在Windows桌面1写代码,写了一半按保存。瞬间切到桌面2处理工作邮件。你的代码环境在虚拟机里纹丝不动,互不干扰。

4. 这种模式在工作中有用吗?(职业前景)

绝对有用,而且是现代IT行业的“必备技能”!

  • 工作中:你入职后,公司不可能给你一台高性能电脑编译大型C++项目。通常你会连接公司机房里的开发机(Linux服务器)

  • 完全一致:你到时候连接公司服务器,用的就是VS Code的这个 Remote - SSH 功能。

  • 提前练兵:你现在拿自己的虚拟机练习这套流程,等到工作上真正需要连接远程Linux服务器时,你会发现操作界面一模一样,直接无缝上手。

5. 详细的配置步骤(手把手教程)

我给你梳理一份精简的“三步走”实操指南:

前提:确保你的Ubuntu虚拟机已经开机,并且网络通畅(能上网)。

第一步:在Ubuntu虚拟机里安装并开启SSH服务
打开Ubuntu的终端(Ctrl+Alt+T),输入以下命令(注意,把PDF里错误的aptget改成标准的apt):

# 1. 安装SSH服务端
sudo apt install openssh-server -y

# 2. 查看SSH服务是否运行成功(显示active表示成功)
sudo systemctl status ssh

# 3. 查看虚拟机的IP地址(PDF里叫ifconfig,新版用这个)
ip a

ip a的输出里,找到类似 inet 192.168.xxx.xxx 的一串数字,这就是你的Ubuntu IP地址(例如 192.168.88.128),记下它

第二步:在Windows上打开VS Code安装插件

  1. 打开你的Windows VS Code。

  2. 点击左侧的“扩展”图标(或按 Ctrl+Shift+X)。

  3. 搜索 Remote - SSH(作者是Microsoft),点击安装。

第三步:连接虚拟机

  1. 安装完成后,左侧会出现一个“远程资源管理器”的图标(像个小显示器)。

  2. 点击它,选择 “SSH Targets”,然后点击旁边的 “+” 号(Add New)。

  3. 在弹出的输入框里输入:ssh 你的用户名@你的IP地址(例如 ssh leaf@192.168.88.128)。

  4. 选择第一个配置文件保存路径(通常是默认的)。

  5. 右下角会弹出窗口,点击 “Connect”(连接)

  6. 选择 “Linux” 平台,输入你的Ubuntu登录密码。

  7. 连接成功后,左下角会变成绿色,显示 “SSH: 你的IP地址”

第四步:打开文件夹写代码
点击VS Code左侧的“资源管理器”,点击 “打开文件夹”,在虚拟机里创建一个你放C++代码的文件夹(比如 /home/你的用户名/cpp_code),点击“确定”。这时候你就可以在里面新建.cpp文件,写代码并按 Ctrl+F5 运行了(VS Code会提示你安装C++插件,按提示安装即可)。

二、 xshell、xftp 介绍 以及是否需要安装并且连接远程系统

疑问:文章中也介绍了xshell、xftp 远程连接Ubuntu系统, xshell、xftp 是什么?作用是什么?采用了 vscode 远程连接Ubuntu 系统之后,还用不用安装 xshell、xftp ?

1. Xshell 和 Xftp 是什么?

  • Xshell:可以理解为 “纯命令行版的远程连接工具”。它的作用就是让你在Windows上打开一个黑乎乎的终端窗口,通过SSH协议连上你的Ubuntu虚拟机(或远程服务器),然后只能敲键盘输入Linux命令(比如lscdg++)。

  • Xftp:可以理解为 “专传文件的远程连接工具”。它的作用是在Windows和Ubuntu之间拖拽传输文件,就像你平时用Windows的资源管理器复制粘贴文件一样,只不过它是通过网络传输的。

2. Xshell/Xftp 能连Ubuntu吗?用不用装?

能连。但对你目前的情况,强烈不建议装,也没必要装。

为什么?因为 VS Code 的 Remote-SSH 插件,已经“吃掉”了这两个软件的所有核心功能,而且做得更好用:

功能 Xshell Xftp VS Code Remote-SSH(你正在用的)
敲Linux命令 ✅ 主力功能(纯终端) ❌ 不支持 ✅ 内置终端(点击菜单栏“终端”->“新建终端”,和Xshell一模一样)
传输/管理文件 ❌ 不支持 ✅ 主力功能(拖拽上传下载) ✅ 自带文件管理器(左侧资源管理器直接浏览、新建、删除、拖拽文件,比Xftp更直观)
写C++代码 ❌ 纯黑窗,没法写 ❌ 不支持 ✅ 绝对强项(代码高亮、智能提示、一键编译调试)

结论:对于你“写C++代码”这个核心需求,VS Code已经集成了Xshell的终端功能和Xftp的文件管理功能。你不需要安装这两个软件,安装了反而多余,还占用你公司电脑的硬盘空间。

3. 既然VS Code都能干,为什么PDF里还要提Xshell/Xftp?

因为PDF是一个通用的“Linux环境搭建”教程,它面对的读者不全是写代码的程序员。有时候系统管理员(运维)只是想远程登录服务器改个配置、重启个服务,他们不需要写代码,所以只需要轻量的Xshell就够了。

但你的场景是“写C++代码”,所以用VS Code是最正确、最现代化的选择。

4. 以后工作中会用到Xshell/Xftp吗?

分岗位回答你(这很重要):

  • 如果你是做“运维工程师”或“系统管理员”:那你必须会用Xshell(或者类似的工具,比如Putty、SecureCRT)。因为运维每天的工作就是登录服务器敲命令行改配置,不需要写复杂的代码。

  • 如果你是做“C++/C软件开发工程师”(你未来大概率走这条路):工作中你几乎不会用Xshell/Xftp来写代码。现代软件开发的主流是 VS Code Remote-SSH 或 JetBrains CLion的远程开发。大厂的开发环境通常是:你在Windows/Mac上打开VS Code,连接公司的远程Linux编译机,直接在VS Code里看代码、写代码、点一下按钮就编译,全程不需要离开VS Code。

但有一个例外:当你的程序在远程服务器上运行时,如果出现崩溃或日志异常,你偶尔会需要用Xshell快速连上去敲几行gdb调试命令或tail -f看日志。但这种情况在大型项目里,往往也会被集成到VS Code的终端里搞定。

给你的建议:你现在的学习路线(只用VS Code Remote-SSH)完全符合工业界的主流标准,放心跟着学。以后如果工作中真的需要,你花5分钟就能上手Xshell,因为它们操作逻辑完全一样(都是填IP、用户名、密码)。

5. 你现在该怎么操作?(最终总结)

  1. 忘记Xshell和Xftp,不用下载,不用安装。

  2. 按照我上一轮给你的三步走教程,只装VS Code的 Remote-SSH 插件

  3. 连上你的Ubuntu虚拟机后:

    • 左侧资源管理器 = 你的文件系统(相当于Xftp)

    • 按 `Ctrl + `` (反引号)调出终端 = 你的命令行(相当于Xshell)

  4. 在VS Code里写完.cpp文件,按 Ctrl+F5(如果配置好了C++插件)或者在终端里手动敲 g++ main.cpp -o main 编译,直接看到结果。

记住一句话VS Code Remote-SSH = Xshell + Xftp + 顶级代码编辑器,三合一! 用这一个就够了。