一、SSH
SSH 是什么?
SSH 全称 Secure Shell(安全外壳协议),是一种通过加密方式在网络中实现远程登录、命令执行、文件传输等操作的网络协议。它的核心作用是在不安全的网络环境(如互联网)中,为两台设备(通常是本地计算机和远程服务器)之间建立加密的通信通道,防止数据传输过程中被窃听、篡改或伪造。
SSH 的核心价值:解决'远程操作的安全性问题'
在 SSH 出现之前,远程登录常用的协议是 Telnet,但 Telnet 传输的数据是明文的(包括用户名、密码、操作指令等),黑客可以通过监听网络轻松获取这些信息,风险极高。
SSH 则通过多层加密技术解决了这个问题:
- 数据传输加密:所有通信内容(如输入的命令、返回的结果)都会被加密,即使被截获也无法直接解读。
- 身份认证保护:登录时的密码或验证信息会通过加密方式传输,避免泄露。
- 数据完整性校验:确保传输的数据未被中途篡改。
SSH 的主要功能
- 远程登录:通过 SSH 连接远程服务器(如 Ubuntu、CentOS 等 Linux 服务器),像操作本地电脑一样在远程服务器上执行命令(如安装软件、查看日志、管理文件等)。
例:在本地终端输入
ssh 用户名@远程服务器 IP,即可登录远程服务器的命令行界面。 - 远程命令执行:无需登录远程服务器,直接在本地执行远程服务器上的命令。
例:
ssh 用户名@远程 IP "ls /home"可直接获取远程服务器/home目录下的文件列表。 - 安全文件传输:基于 SSH 协议衍生出的
scp(Secure Copy)和sftp(SSH File Transfer Protocol)工具,可安全地在本地和远程服务器之间传输文件(替代不安全的 FTP 协议)。 例:scp 本地文件路径 用户名@远程 IP:远程目录可将本地文件上传到远程服务器。 - 端口转发:通过 SSH 建立'加密隧道',将远程服务器的某个端口(如数据库端口、Web 服务端口)映射到本地,实现安全访问(常用于访问内网服务)。
二、VSCode 使用 SSH 连接 Ubuntu 的优势
使用 VS Code 通过 SSH 远程连接 Ubuntu(Linux 系统),本质是将本地 VS Code 作为「前端编辑器」,直接操作远程 Ubuntu 上的代码、环境和资源,其核心优势围绕开发体验统一、环境一致性、安全性等维度展开,尤其适合服务器开发、多设备协作或本地环境受限的场景。
本地熟悉的开发体验,避免远程命令行的低效
Ubuntu 服务器通常以命令行(CLI)为主,直接在终端用 vim/nano 编辑代码对习惯图形化界面的开发者不够友好,且缺乏 VS Code 强大的插件生态(如语法高亮、代码补全、调试工具、Git 集成等)。
通过 SSH 远程连接后:
- 完全复用本地 VS Code 配置:插件(如 Python 插件、Go 插件、ESLint)、快捷键、主题、用户设置(如缩进、代码格式化规则)全部同步,无需在远程 Ubuntu 重新配置。
- 图形化操作远程文件:像操作本地文件一样,通过 VS Code 的「资源管理器」浏览、创建、修改远程 Ubuntu 上的文件/文件夹,支持拖拽、右键菜单(如「新建终端」「运行代码」)。
- 可视化调试远程程序:直接在本地 VS Code 中设置断点、单步执行远程 Ubuntu 上运行的程序(如 Python 脚本、Node.js 服务),无需在终端用
gdb等命令行调试工具,降低调试门槛。
消除本地与远程环境不一致的痛点
开发中常见问题:「本地代码能跑,部署到 Ubuntu 服务器就报错」,根源是本地(如 Windows/macOS)与远程 Ubuntu 的环境差异(如 Python 版本、依赖库版本、系统变量、权限配置等)。
















