使用 VSCode 通过 Remote-SSH 连接远程服务器详细教程

使用 VSCode 通过 Remote-SSH 连接远程服务器详细教程

使用 VSCode 通过 Remote-SSH 连接远程服务器详细教程

在日常开发中,许多开发者需要远程连接服务器进行代码编辑和调试。Visual Studio Code(VSCode)提供了一个非常强大的扩展——Remote-SSH,它允许我们通过 SSH 协议直接连接远程服务器,在本地编辑服务器上的代码,极大提高了开发效率。本文将详细讲解如何使用 VSCode 连接远程服务器,涵盖从插件安装到连接服务器的整个流程。

一、前提条件

1. 本地环境准备

在开始之前,确保你的本地环境满足以下条件:

  1. Visual Studio Code 已安装,版本最好是最新稳定版,确保可以支持最新的 Remote-SSH 功能。
  2. SSH 客户端 已正确安装并配置:
    • LinuxMac 系统自带 OpenSSH 客户端,一般不需要额外安装。

Windows 用户需要通过 PowerShell 或 Windows 设置中启用 OpenSSH,或者使用 Git BashWSL 提供的 SSH 客户端。可以通过如下命令确认 SSH 是否可用:

ssh -V 

如果未安装,可以通过 Windows 的 可选功能 中启用或使用 choco 安装:

choco install openssh 

2. 远程服务器准备

确保你拥有以下远程服务器的信息:

  1. SSH 访问权限
    • 远程服务器支持 SSH 协议。
    • 你有服务器的 IP 地址用户名密码,或 SSH 密钥
  2. 防火墙配置
    • 确保服务器的 SSH 端口(通常为 22)对你的本地 IP 开放。如果使用自定义端口,需要知道该端口号。
  3. 服务器配置

Linux 系统的服务器通常默认支持 SSH,但一些轻量级发行版可能需要提前安装并启用 OpenSSH 服务器:

sudoaptinstall openssh-server # Debian/Ubuntu 系列sudo systemctl enablesshsudo systemctl start ssh

二、步骤详解

1. 安装 Remote-SSH 插件

打开 VSCode,点击左侧活动栏最下方的 扩展 (Extensions) 图标,或者按 Ctrl+Shift+X 快捷键调出扩展商店。在搜索栏中输入 “Remote - SSH”,并点击 安装 来安装该扩展。安装完成后,VSCode 的左下角会出现一个绿色的远程连接按钮,表明插件安装成功。

2. 启动 Remote-SSH 连接

插件安装完成后,点击 左下角的绿色图标,这将打开 Remote-SSH 的操作菜单。

打开Remote-SSH

在弹出的菜单中,选择 Connect to Host,即 “连接到主机”。

选择Connect to Host

3. 添加新的 SSH 主机

点击 Add New SSH Host,也就是 “添加新的 SSH 主机” 选项,准备配置你要连接的远程服务器。

选择Add New SSH Host

4. 输入 SSH 连接命令

接下来,VSCode 会要求你输入远程服务器的 SSH 命令。格式如下:

ssh 用户名@服务器IP地址 

例如,如果服务器的 IP 地址是 192.168.0.1,用户名是 user,你需要输入的命令是:

ssh [email protected] 

如果服务器使用的是自定义端口(如 2200),你需要指定端口:

ssh [email protected] -p 2200
输入SSH命令

5. 选择 SSH 配置文件位置

输入 SSH 命令后,VSCode 会提示你选择存放 SSH 主机配置信息的文件位置。建议选择默认的 SSH 配置文件,通常是 ~/.ssh/config

选择默认SSH配置文件

如果你之前没有配置过,可以直接选择该文件。它会自动生成配置项,方便后续连接。

配置文件 ~/.ssh/config 的示例如下:

Host myserver HostName 192.168.0.1 User user Port 2200# 如果不是默认端口,则手动添加该行
  • Host 字段是一个别名,方便你后续通过 ssh myserver 连接到该服务器。
  • HostName 表示远程服务器的 IP 地址或域名。
  • User 是登录的用户名。

6. 连接远程主机

添加 SSH 主机后,VSCode 会提示你返回 Remote-SSH 菜单,选择刚刚添加的主机进行连接。点击主机名称后,VSCode 将自动打开一个新窗口并尝试连接到远程服务器。

选择Connect连接远程服务器

7. 选择远程操作系统

连接服务器后,VSCode 会询问远程服务器的操作系统类型。根据服务器的操作系统(通常是 Linux),选择对应的选项。

选择远程系统类型

8. 输入 SSH 密码

如果是首次连接该服务器,系统会要求你输入 SSH 密码(或者在使用密钥的情况下,可能需要输入密钥的密码)。输入密码后,按回车即可。

输入SSH密码

9. 连接成功

当连接成功后,VSCode 左下角会显示远程服务器的名称,表示已经成功连接上远程服务器。

显示服务器名称

三、常见问题及解决方案

1. SSH 连接失败或超时

  • 可能原因
    • 防火墙阻止了 SSH 端口(默认 22)的访问。
    • SSH 服务未在服务器上启动。
    • 使用了错误的 IP 地址或用户名。
  • 解决方案
    • 确认 SSH 账号信息是否正确,确保公钥和私钥对匹配。

确保服务器上运行了 SSH 服务:

sudo systemctl status ssh

检查服务器的 SSH 端口是否开放,可以使用以下命令测试:

telnet 192.168.0.1 22

2. 密钥认证失败

  • 可能原因:密钥权限不正确,或公钥未正确添加到远程服务器的 ~/.ssh/authorized_keys 文件中。
  • 解决方案
    • 确保公钥正确地添加到了远程服务器的 ~/.ssh/authorized_keys 中,并且权限设置为 600。

确保私钥文件的权限为 600:

chmod600 ~/.ssh/id_rsa 

3. 远程文件过大导致操作缓慢

  • 可能原因:如果你在编辑非常大的文件,或者远程服务器网络带宽较低,操作可能会变慢。
  • 解决方案:在 VSCode 中,可以设置 文件大小警告阈值,并使用压缩文件传输等方式优化性能。还可以使用 rsync 等工具手动同步大文件。

四、提高远程开发效率的技巧

  1. 使用 VSCode 终端:在连接远程服务器后,你可以直接使用 VSCode 的集成终端运行服务器上的命令,避免频繁切换窗口。
  2. 远程调试:VSCode 支持通过 Remote-SSH 进行远程调试,你可以直接在远程服务器上调试应用程序,尤其是 Node.js、Python、Java 等语言的开发。
  3. Git 版本控制:你可以直接在 VSCode 中使用 Git 进行版本控制,所有操作都会在远程服务器上执行,这使得你可以在远程环境中直接提交代码。
  4. 同步设置:VSCode 提供了设置同步功能,可以在本地和远程服务器之间保持一致的开发配置,从而提高工作效率。

通过以上详细的配置和使用步骤,你可以顺利地通过 VSCode 的 Remote-SSH 插件连接到远程服务器,并在本地进行高效的远程开发。希望这篇教程能帮助你解决在实际开发中遇到的各种问题,提升工作效率。

Read more

【C++ 】智能指针:内存管理的 “自动导航仪”

【C++ 】智能指针:内存管理的 “自动导航仪”

目录 一、引入 二、智能指针的两大特性: 1、RAII 特点: 好处: 2、行为像指针 三、智能指针起初的缺陷:拷贝问题 四、几种智能指针的介绍。 1、C++98出现的智能指针——auto_ptr auto_ptr解决上述拷贝构造的问题: 2、boost库 3、unique_ptr 4、shared_ptr 引用计数的实现: 赋值运算符的问题:(循环引用) 5、weak_ptr 特点: 解决循环引用问题: 五、C++智能指针的基本框架: 六、定制删除器,以及包装器的使用场景之一 七、内存泄漏: 1、什么是内存泄漏,内存泄漏的危害:

By Ne0inhk
【探寻C++之旅】C++11 深度解析:重塑现代 C++ 的关键特性

【探寻C++之旅】C++11 深度解析:重塑现代 C++ 的关键特性

请君浏览 * 前言 * 1. C++的发展历史 * 2. 列表初始化:统一对象初始化的优雅方案 * 2.1 从 C++98 到 C++11 的突破 * 2.2 std::initializer_list:容器初始化的 “神器” * 3. 右值引用和移动语义:彻底解决拷贝性能痛点 * 3.1 左值 vs 右值 * 3.2 左值引用 vs 右值引用 * 3.3右值引用的使用场景 * 3.3.1参数匹配 * 3.3.2 类型分类 * 3.3.3 移动构造和移动赋值

By Ne0inhk
C++ 虚函数与纯虚函数:多态的核心实现基石

C++ 虚函数与纯虚函数:多态的核心实现基石

C++ 虚函数与纯虚函数:多态的核心实现基石 💡 学习目标:深度理解虚函数与纯虚函数的本质区别,掌握虚函数表的底层原理,能够灵活运用二者设计具备多态特性的类结构。 💡 学习重点:虚函数的声明与重写规则、纯虚函数与抽象类的使用场景、虚函数表的工作机制、虚函数的常见陷阱与解决方案。 一、虚函数的本质与定义 ✅ 结论:虚函数是 C++ 实现动态多态的核心,通过在基类成员函数前添加 virtual 关键字,允许派生类重写该函数,并在运行时根据对象的实际类型调用对应版本。 1.1 虚函数的声明语法 虚函数的声明必须在基类中进行,语法格式如下: class 基类名 {public:virtual 返回值类型 函数名(参数列表){// 函数体}}; 1.2 虚函数的核心特性 1. 运行时绑定:函数调用关系在程序运行时确定,而非编译时。 2. 重写规则:派生类重写的函数必须与基类虚函数的函数名、参数列表、返回值类型完全一致(协变类型除外)。 3.

By Ne0inhk
Redis核心通用命令深度解析:结合C++ redis-plus-plus 实战指南

Redis核心通用命令深度解析:结合C++ redis-plus-plus 实战指南

前言:为何选择 Redis 与 C++? 在当今这个数据驱动的时代,高性能的数据存储与访问是构建现代化应用的基石。Redis,作为一个开源的、基于内存的键值对存储数据库,以其无与伦比的读写速度、丰富的数据结构、以及灵活的应用场景(缓存、消息队列、会话存储、排行榜等),成为了后端开发者的瑞士军刀。 与此同时,C++ 作为一门追求极致性能的编程语言,长期以来在游戏开发、金融交易、高性能计算等领域占据着主导地位。当 C++ 的高性能与 Redis 的高速度相结合时,我们便能够构建出响应迅捷、吞吐量巨大的应用程序。 然而,要将二者优雅地结合起来,我们需要一个强大的“桥梁”——Redis 客户端库。redis-plus-plus 就是这样一个专为现代 C++ (C++11 及以上) 设计的优秀库。它不仅封装了 Redis 的原生协议,提供了类型安全、易于使用的 API,

By Ne0inhk