使用 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 myserverHostName 192.168.0.1User userPort 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 插件连接到远程服务器,并在本地进行高效的远程开发。希望这篇教程能帮助你解决在实际开发中遇到的各种问题,提升工作效率。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLO V3 网络构架解析

YOLO V3(You Only Look Once version 3)是由Joseph Redmon等人于2018年提出的一种基于深度学习的目标检测算法。它在速度和精度上相较于之前的版本有了显著提升,成为计算机视觉领域的一个重要里程碑。本文将详细解析YOLO V3的网络架构&#x…

【信息论基础第六讲】离散无记忆信源等长编码包括典型序列和等长信源编码定理

一、信源编码的数学模型 我们知道信源的输出是消息序列,对于信源进行编码就是用码字集来表示消息集,也就是要进行从消息集到码字集的映射。 根据码字的特征我们又将其分为D元码,等长码,不等长码,唯一可译码。 我们通过…

通过DevTools逃离Chrome沙盒(CVE-2024-6778和CVE-2024-5836)

介绍 这篇博文详细介绍了如何发现CVE-2024-6778和CVE-2024-5836的,这是Chromium web浏览器中的漏洞,允许从浏览器扩展(带有一点点用户交互)中进行沙盒逃逸。 简而言之,这些漏洞允许恶意的Chrome扩展在你的电脑上运行…

npm run serve 提示异常Cannot read property ‘upgrade‘ of undefined

npm run serve 提示Cannot read property ‘upgrade’ of undefined 一般是proxy的target代理域名问题导致的,如下: 解决方案: proxy: { “/remoteDealerReportApi”: { target: ‘http://demo-.com.cn’, //此域名有问题,会导致…

Linux-基础命令及相关知识2

补充: 1、A命令(echo)既有可能是内部命令也有可能是外部命令,例如命令A既有可能在bash上也有可能在csh上,为了防止A在某些shell程序里不起作用,可以将A命令设置为外部命令(环境变量路径上&…

【JAVA毕设】基于JAVA的酒店管理系统

一、项目介绍 本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router实现动态路由,Ajax实现前后端通信,Element-plus组件库使页面快速成型。后端部分:采用SpringBoot作为开发框架,同时集成MyBatis、Redis、…

Chrome DevTools:Console Performance 汇总篇

Chrome DevTools Chrome 开发者工具是一套 Web 开发者工具,直接内置于 Google Chrome 浏览器中。 开发者工具可以帮助您即时修改页面和快速诊断问题,最终帮助您更快地构建更好的网站。 一、开启 DevTools 右上角菜单 > 更多工具 > 开发者工具 页面…

如何用mmclassification训练多标签多分类数据

这里使用的源码版本是 mmclassification-0.25.0 训练数据标签文件格式如下,每行的空格前面是路径(图像文件所在的绝对路径),后面是标签名,因为特殊要求这里我的每张图像都记录了三个标签每个标签用“,”分开&#xff0…

力扣71~75题

题71(中等): python代码: class Solution:def simplifyPath(self, path: str) -> str:#首先根据/分割字符串,再使用栈来遍历存储p_listpath.split(/)p_stack[]for i in p_list:#如果为空则肯定是//或者///if i:con…

mac m1 安装openresty以及redis限流使用

一切源于一篇微信文章 早上我上着班,听着歌1.打算使用腾讯云服务器centos-7实验:安装ngx_devel_kitmac m1 os 12.7.6 安装openresty测试lua限流: 终于回到初心了! 早上我上着班,听着歌 突然微信推送了一篇文章《Nginx 实现动态封…

记录一次从nacos配置信息泄露到redis写计划任务接管主机

经典c段打点开局。使用dddd做快速的打点发现某系统存在nacos权限绕过 有点怀疑是蜜罐,毕竟nacos这实在是有点经典 nacos利用 老规矩见面先上nacos利用工具打一波看看什么情况 弱口令nacos以及未授权访问,看这记录估计被光顾挺多次了啊 手动利用Nacos-…

MySQL - Navicat自动备份MySQL数据

对于从事IT开发的工程师,数据备份我想大家并不陌生,这件工程太重要了!对于比较重要的数据,我们希望能定期备份,每天备份1次或多次,或者是每周备份1次或多次。 如果大家在平时使用Navicat操作数据库&#x…

深入解析Python数据容器

Python数据容器 1,数据容器介绍2,数据容器的分类3,数据容器:list(列表)3.1,列表的定义3.2,列表的下标索引3.3,列表的常用操作3.3.1,查找指定元素下标3.3.2&am…

【OpenAI】第三节(上下文)什么是上下文?全面解读GPT中的上下文概念与实际案例

文章目录 一、GPT上下文的定义1.1 上下文的组成 二、GPT上下文的重要性2.1 提高生成文本的相关性2.2 增强对话的连贯性2.3 支持多轮对话 三、使用上下文改善编程对话3.1 使用上下文的概念3.2 使用上下文改善对话的作用3.3 使用上下文改善对话的方法3.4 案例分析 四、利用历史记…

安装Openeuler出现的问题

1.正常安装中,不显示已有的网络,ens33 尝试:手敲ens33配置,包括使用uuidgen ens33 配置还是不行 可能解决办法1:更换安装的版本。譬如说安装cenos 7 64位 启动虚拟机,更换版本之后的安装界面,…

Excel常用操作培训

以下是Excel的基本操作,内部培训专用。喜欢就点赞收藏哦! 目录 1 Excel基本操作 1.1 常用快捷键 1.1.1快捷键操作工作簿、工作表 1.1.2快捷键操作 1.1.3单元格操作 1.1.4输入操作 2.1 常见功能描述 2.1.1 窗口功能栏 2.1.2 剪切板 2.1.3 字体…

计算机网络——传输层服务

传输层会给段加上目标ip和目标端口号 应用层去识别报文的开始和结束

海南聚广众达电子商务咨询有限公司靠谱吗怎么样?

在当今这个数字化浪潮席卷全球的时代,抖音电商以其独特的魅力成为了众多商家争相入驻的新蓝海。而在这片浩瀚的电商海洋中,如何找到一家既专业又可靠的合作伙伴,成为了众多商家心中的一大难题。今天,我们就来深入剖析一下海南聚广…

组件可控个性化生成新方法MagicTailor:生成过程中可以自由地定制ID

今天的文章来自公众号粉丝投稿,文章提出了一种组件可控的个性化生成方法MagicTailor,旨在个性化生成过程中可以自由地定制ID的特定组件。 相关链接 论文阅读:https://arxiv.org/pdf/2410.13370 项目主页:https://correr-zhou.gi…

拼多多详情API接口的获取与应用

一、拼多多详情API接口概述 1. API接口定义与功能 拼多多开放平台为开发者提供了丰富的API接口,其中商品详情API接口尤为重要。该接口允许开发者通过编程方式获取商品的详细信息,包括商品标题、价格、描述、图片、规格参数、库存等。这些信息对于电商数…