使用 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 服务器:
      sudo apt install openssh-server  # Debian/Ubuntu 系列
      sudo systemctl enable ssh
      sudo 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 user@192.168.0.1
  • 如果服务器使用的是自定义端口(如 2200),你需要指定端口:
    ssh user@192.168.0.1 -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 端口是否开放,可以使用以下命令测试:
      telnet 192.168.0.1 22
      
    • 确保服务器上运行了 SSH 服务:
      sudo systemctl status ssh
      
    • 确认 SSH 账号信息是否正确,确保公钥和私钥对匹配。

2. 密钥认证失败

  • 可能原因:密钥权限不正确,或公钥未正确添加到远程服务器的 ~/.ssh/authorized_keys 文件中。

  • 解决方案

    • 确保私钥文件的权限为 600:
      chmod 600 ~/.ssh/id_rsa
      
    • 确保公钥正确地添加到了远程服务器的 ~/.ssh/authorized_keys 中,并且权限设置为 600。

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

  • 可能原因:如果你在编辑非常大的文件,或者远程服务器网络带宽较低,操作可能会变慢。

  • 解决方案:在 VSCode 中,可以设置 文件大小警告阈值,并使用压缩文件传输等方式优化性能。还可以使用 rsync 等工具手动同步大文件。


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

  1. 使用 VSCode 终端:在连接远程服务器后,你可以直接使用 VSCode 的集成终端运行服务器上的命令,避免频繁切换窗口。

  2. 远程调试:VSCode 支持通过 Remote-SSH 进行远程调试,你可以直接在远程服务器上调试应用程序,尤其是 Node.js、Python、Java 等语言的开发。

  3. Git 版本控制:你可以直接在 VSCode 中使用 Git 进行版本控制,所有操作都会在远程服务器上执行,这使得你可以在远程环境中直接提交代码。

  4. 同步设置:VSCode 提供了设置同步功能,可以在本地和远程服务器之间保持一致的开发配置,从而提高工作效率。


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/899778.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

背包九讲——完全背包问题

目录 完全背包问题 问题定义 动态规划解法 状态转移方程 初始化 遍历顺序 三种解法: 朴素版——枚举k 进阶版——dp正推(一维滚动数组) 背包问题第三讲——完全背包问题 背包问题是一类经典的组合优化问题,通常涉及在限定…

kafka 的高可用机制是什么?

大家好,我是锋哥。今天分享关于【kafka 的高可用机制是什么?】面试题?希望对大家有帮助; kafka 的高可用机制是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Apache Kafka 是一个分布式消息系统&am…

《性能之巅:洞悉系统、企业与云计算》读书笔记-Part 1

本文是读书笔记第一部分,包括原书第一、二章。 绪论 性能是一门令人激动的,富于变化同时又充满挑战的学科。 系统性能 单台服务器上的通用系统软件栈 人员 系统性能是一项需要多类人员参与的工程。 事情 关于性能的理想执行顺序排列如下&#x…

8个方法教会你提高企业培训效率

培训成本是企业中的一个复杂问题。它完全取决于课程内容、培训方法以及成本效益。在计算培训费用时,公司会面临许多关于包括哪些内容、如何进行以及假设情景的问题。 企业员工培训的每个方面都会产生自己的成本。例如: 地点:我们专门找个培训…

【重拾算法第一天】质数约数欧拉筛 埃氏筛GCD

1.素数 素数(Prime Number)是指大于1的自然数,只有两个正因数:1和它自身。换句话说,素数是不能被其他自然数整除的数。 1.1小素数的判定 判定一个数是否为素数 ,当N ≤ 时, 用试除法 &#…

Redis 命令集 (超级详细)

目录 Redis 常用命令集 string类型 hash类型 list类型 set类型 zset类型 bitmap 类型 geo 类型 GEOADD (添加地理位置的坐标) GEOPOS (获取地理位置的坐标) GEODIST (计算两个位置之间的距离) GEOHASH (返回一个或多个位置对象的 geohash 值) GEORADIUS (根据用户…

DAF-Net:一种基于域自适应的双分支特征分解融合网络用于红外和可见光图像融合

题目:DAF-Net: A Dual-Branch Feature Decomposition Fusion Network with Domain Adaptive for Infrared and Visible Image Fusion 作者:JianXu发表时间:2024年9月 面临的问题:红外图像擅长捕捉热辐射,特别是在低…

国家能源集团携手海康威视研发攻克融合光谱煤质快检技术

10月24日,在国家能源集团准能集团黑岱沟露天煤矿,安装于准能选煤厂785商品煤胶带机中部的煤质快检核心设备,正在对当天装车外运的商品煤煤质进行实时检测。仅两分钟后,涵盖发热量、水分、灰分、硫分等多项指标的数据信息已传输到到…

前端方案:播放的视频加水印或者文字最佳实践

前言: 很多时候,视频的转码工作在后端,我们前端是拿到可以播放的链接进行播放即可。但是总是会出现一些定制化的需求,比如在视频的某个区域贴上水印、标识或者文字。这个时候大部分是由前端来操作的。 直接去修改播放器里的东西…

c语言指针详解2

c语言指针详解2 1.数组名理解 数组名其实是地址,是数组首元素的地址(详解1有提及) 我们可以根据打印来确认 我们发现数组名和数组⾸元素的地址打印出的结果⼀模⼀样,数组名就是数组⾸元素(第⼀个元素)的地址。 但是上述结论有…

DataX简介及使用

目录 一、DataX离线同步工具DataX3.0介绍 1.1、 DataX 3.0概览 1.2、特征 1.3、DataX3.0框架设计 1.4、支持的数据元 1.5、DataX3.0核心架构 1.6、DataX 3.0六大核心优势 1.6.1、可靠的数据质量监控 1.6.2、丰富的数据转换功能 1.6.3、精准的速度控制 1.6.4、强劲的…

轻松清理 PC 微信文件,释放存储空间

软件介绍 微信在我们的日常生活中使用频率极高,但随着时间的推移,它占用的存储空间也越来越大。以一个使用了两年时间的微信为例,它可能会占用多达几十G的存储空间。其中大部分都是与自己无关的各大群聊中的文件、视频、图片等内容&#xff…

java导出带图形的word

先看效果图:方法都是一样的,所以数据只做了前两组 第一步需要准备模版: 新建一个word插入图表,选择想要的图表。 编辑图表:营业额表示数字,季度表示文字。其他的样式编辑可根据自己的需求更改,…

从 Vue 2 到 Vue 3:全面升级指南

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vuet篇专栏内容:Vue-从 Vue 2 到 Vue 3:全面升级指南 前言 随着前端技术的不断发展,Vue.j…

基于大型语言模型的智能网页抓取

Google Gemini 是 Google AI 创建的大型语言模型 (LLM) 系列,可提供最先进的 AI 功能。Gemini 模型包括: Gemini Ultra — 最大、最强大的模型,擅长处理编码、逻辑推理和创意协作等复杂任务。可通过 Gemini Advanced(原名 Bard&a…

FreeRTOS任务状态_改进播放控制 任务管理与调度 空闲任务及其钩子函数 两个Delay函数

任务状态_改进播放控制 FreeRTOS源码概述(内存管理,入口函数,数据类型和编程规范)创建任务(声光色影,使用任务参数)删除任务(使用遥控器控制音乐)-CSDN博客https://blog…

网络信息安全工程师证2024年如何报考?了解这几点让你轻松考证!收藏这一篇就够了

网络信息安全工程师是一种专门从事网络安全工作的职业。随着互联网的快速发展和普及,网络安全问题也日益突出,因此网络信息安全工程师的需求也越来越大。 网络信息安全工程师主要负责保护网络系统和数据的安全,防止黑客攻击、病毒侵入、数据泄…

2.3 塑性力学—等效应力

个人专栏—塑性力学 1.1 塑性力学基本概念 塑性力学基本概念 1.2 弹塑性材料的三杆桁架分析 弹塑性材料的三杆桁架分析 1.3 加载路径对桁架的影响 加载路径对桁架的影响 2.1 塑性力学——应力分析基本概念 应力分析基本概念 2.2 塑性力学——主应力、主方向、不变量 主应力、主…

qt生成uuid,转成int。ai回答亲测可以

// 生成一个随机的UUID QUuid uuid QUuid::createUuid(); // 将UUID转换为字符串 QString uuidStr uuid.toString(QUuid::WithoutBraces);// 计算MD5哈希值 QByteArray hash QCryptographicHash::hash(uuidStr.toUtf8(), QCryptographicHash::Md5);// 提取前8个字节并转换为…

设计模式——装饰者模式(8)

一、定义 指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。我们先来看一个快餐店的例子。快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额…