1. 首页 > 服务器系统 > Ubuntu

SSH是什么?主要功能有哪些?VScode使用ssh远程连接Ubuntu的详细步骤

一、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 版本、依赖库版本、系统变量、权限配置等)。
通过 SSH 远程开发时:

直接使用远程 Ubuntu 的开发环境:代码的编译、运行、依赖安装(如 apt install/pip install)均在远程 Ubuntu 中执行,完全贴合最终部署环境,从根源上避免「环境不一致」导致的兼容性问题。 无需在本地模拟 Linux 环境:无需在本地安装虚拟机(如 VirtualBox)或 WSL(Windows Subsystem for Linux)来模拟 Ubuntu,节省本地磁盘空间和内存占用,同时避免虚拟机与主机的文件共享、网络配置等繁琐操作。

三、准备工作

在开始之前,请确保您的本地与远程环境满足以下基本要求:

本地环境

Visual Studio Code: 已安装能稳定使用的 VS Code。 Remote - SSH 扩展: 在 VS Code 扩展市场中搜索并安装 ms-vscode-remote.remote-ssh。这是实现远程连接的核心组件。
在这里插入图片描述

远程环境 (Ubuntu 服务器)

一台 Ubuntu 服务器: 拥有一个具有 sudo 权限的用户账户。

OpenSSH 服务器: 服务器上必须安装并运行 openssh-server。您可以通过以下命令检查其状态:

sudo systemctl status ssh

如果服务未运行或未安装,请执行:

# 安装 OpenSSH Server
sudo apt update
sudo apt install openssh-server
# 启动并设置为开机自启
sudo systemctl start ssh
sudo systemctl enable ssh

远程环境 (Ubuntu 服务器)

网络连通性: 您的本地计算机必须能够通过网络访问到远程服务器的 IP 地址或域名。请确保防火墙(如 ufw)已放行 SSH 端口(默认为 22)。

四、建立 SSH 连接

1、准备工作正确完成后我们会看见vscode中侧边栏多出了一个图标

建立 SSH 连接

2、使用ifconfig查看Ubuntu的IP地址h和用户名

建立 SSH 连接_图2

3、vscode中ssh连接Ubuntu

建立 SSH 连接_图3

4、按格式输入用户名以及IP地址用于连接

ssh username@remote_host

其中username是用户名,remote_host是Ubuntu的IPV4地址,记得替换成你自己的相关信息,输入完成后点击回车

建立 SSH 连接_图4

如果n你没有对ssh默认端口进行修改,跳过此步,如果你切换了端口,让默认端口不是22,则你可以使用下面这个命令设置端口为你修改的ssh端口。其他部分与上面相同

ssh -p port_number username@remote_host

5、选择一个文件保存配置

建立 SSH 连接_图5

6、右下角回弹出打开配置选项,可以打开配置文件查看是否你的Ubuntu的用户名和IP地址被正确添加到配置文件,确认后保存(ctrl+s)并退出

建立 SSH 连接_图6

7、确认配置中包含了你的Ubuntu信息后就可以看到SSH下面已经有你的主机了

建立 SSH 连接_图7
8、选择连接所在窗口

建立 SSH 连接_图8

9、输入Ubuntu密码

建立 SSH 连接_图9

10、连接成功
建立 SSH 连接_图10

11、关闭连接
建立 SSH 连接_图11

12、删除SSH连接

建立 SSH 连接_图12

五、总结

通过 Remote - SSH 扩展,VS Code 极大地简化了远程开发的复杂性,提供了一种近乎本地的开发体验。它将强大的编辑器功能与服务器的计算能力完美结合,构成了现代、高效的开发工作流。掌握本文所述的配置方法与最佳实践,将使您能够更加从容地驾驭任何远程开发场景。

SSH连接服务器实操

1. 基础连接

  • 获取服务器信息
    • IP地址(如 123.123.123.123)
    • 登录账户(如 root 或 ubuntu)
  • 执行连接命令
ssh <账户名>@<IP地址>
# 示例:ssh root@123.123.123.123
  • 输入密码:根据提示输入账户密码。
  • 退出连接:按 Ctrl/Command + D 或输入 exit。

2. 为服务器设置别名

目的:用简短别名(如 myserver)替代复杂IP地址。

创建配置文件

touch ~/.ssh/config   # 若文件不存在则新建

编辑配置

Host myserver         # 自定义别名
  HostName 123.123.123.123  # 服务器IP
  User root           # 登录账户

使用别名连接

ssh myserver

3. 配置免密登录

原理:客户端存私钥,服务端存公钥。

生成密钥对(客户端执行):

ssh-keygen [-t ed25519]  # 按提示设置保存路径和密码(可选)
 # 方括号中的内容可选,不进行配置会有一个默认算法
  • 默认生成文件:~/.ssh/id_ed25519(私钥)和 id_ed25519.pub(公钥)。

权限检查

chmod 600 ~/.ssh/id_ed25519  # 建议设置私钥权限!

上传公钥到服务器

ssh-copy-id myserver  # 或手动复制公钥内容到服务器的 ~/.ssh/authorized_keys

服务器端权限设置

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

验证免密登录

ssh myserver  # 无需输入密码直接进入

以上就是SSH是什么?主要功能有哪些?VScode使用ssh远程连接Ubuntu的详细步骤的详细内容,更多相关资料请阅读主机测评网其它文章!

本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https:///ubuntu/8804.html

联系我们

在线咨询:点击这里给我发消息

Q Q:2220678578