当前位置: 首页 > news >正文

【小白向超详细】使用 VSCode 远程连接 Linux 服务器详细教程

使用 VSCode 远程连接 Linux 服务器详细教程

前提条件

  1. 已安装 VSCode
  2. 已在 VSCode 中安装 Remote - SSH 插件。
  3. 目标 Linux 服务器 开启了 SSH 服务,并可以通过 SSH 访问。
  4. 本地电脑已安装 SSH 客户端(Linux 和 macOS 自带,Windows 用户可以安装 OpenSSH)。

一、安装 Remote - SSH 插件

  1. 打开 VSCode
  2. 点击左侧扩展(Extensions)图标。
  3. 搜索 Remote - SSH,点击 Install 安装插件。

二、配置 SSH

2.1 检查或创建 SSH 配置文件

SSH 的配置文件路径通常为:

~/.ssh/config

如果文件不存在,可以通过以下命令创建:

touch ~/.ssh/config
配置示例:

编辑配置文件:

nano ~/.ssh/config

添加以下内容:

Host my-linux-serverHostName 192.168.1.100        # 替换为服务器 IP 地址或域名User username                # 替换为你的 SSH 用户名Port 22                      # SSH 服务的端口,默认是 22IdentityFile ~/.ssh/id_rsa   # 指定私钥路径

保存后,测试连接:

ssh my-linux-server

如果可以正常登录,则配置无误。


三、使用 VSCode 连接服务器

3.1 打开 Remote - SSH

  1. 点击 VSCode 左下角绿色按钮(打开远程开发菜单)。
  2. 选择 Remote-SSH: Connect to Host…

3.2 选择服务器

  1. 在弹出的输入框中,输入你在 ~/.ssh/config 中配置的 Host,例如 my-linux-server
  2. 按下回车后,VSCode 会尝试通过 SSH 连接到服务器。

3.3 输入密码或配置免密登录

  1. 如果没有配置免密登录,会提示输入服务器的 SSH 密码。
  2. 如果设置了公钥认证(免密登录),直接连接即可。

四、解决远程连接问题

常见错误及解决方法:

1. config 文件路径错误

错误描述: 如果 VSCode 输出窗口中提示类似:

Error: ENOENT: no such file or directory, mkdir '/path/to/.ssh/config'

解决方法:

  • 打开 VSCode 左侧扩展栏,找到已安装的 Remote - SSH 插件。
  • 右键点击插件,选择 Extension Settings
  • Config File 项中,输入正确的 SSH 配置文件路径(例如:~/.ssh/config)。
  • 保存设置后重新尝试连接。
2. 权限问题

错误描述: 权限不足,无法连接 SSH。
解决方法:

  • 确保 ~/.ssh/config 文件权限为 600
    chmod 600 ~/.ssh/config
    
  • 确保私钥文件权限为 600
    chmod 600 ~/.ssh/id_rsa
    
3. 服务器配置问题

错误描述: 无法连接到服务器,报错类似:

Permission denied (publickey)

解决方法:

  • 确保服务器的 SSH 服务已启动:
    sudo systemctl status sshd
    
  • 检查服务器是否正确配置了公钥认证。公钥应该存放在服务器的 ~/.ssh/authorized_keys 文件中。
4. 远程 VSCode 服务未正确安装

错误描述: 首次连接时,VSCode 会尝试在服务器上安装所需的远程服务,可能失败。
解决方法:

  • 确保服务器可以访问互联网。
  • 如果安装失败,可以手动下载 VSCode 的远程服务文件并解压到服务器上的对应目录(提示路径中会包含 ~/.vscode-server)。

五、配置免密登录(可选)

为了避免每次连接时输入密码,可以设置 SSH 公钥认证。

  1. 本地生成公钥和私钥:

    ssh-keygen -t rsa -b 4096
    

    按提示选择保存路径(默认路径为 ~/.ssh/id_rsa)。

  2. 将公钥上传到服务器:

    ssh-copy-id username@192.168.1.100
    

    如果没有安装 ssh-copy-id,可以手动上传公钥:

    cat ~/.ssh/id_rsa.pub | ssh username@192.168.1.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    
  3. 测试免密登录:

    ssh username@192.168.1.100
    

六、常用技巧

6.1 打开远程文件夹

连接成功后,可以选择打开服务器上的特定目录。例如 /home/username/project

6.2 安装远程扩展

  • 当你使用远程连接时,扩展默认会安装到服务器上。
  • 如果需要某些扩展在服务器运行,可以直接在 VSCode 扩展市场中点击安装。

总结

通过配置 SSH 和使用 Remote - SSH 插件,VSCode 可以方便地连接远程 Linux 服务器,支持文件编辑、代码调试等操作。如果遇到问题,可以根据报错信息一步步排查。

希望本文对你有所帮助!如果有其他问题,欢迎评论交流。 😊


相关文章:

【小白向超详细】使用 VSCode 远程连接 Linux 服务器详细教程

使用 VSCode 远程连接 Linux 服务器详细教程 前提条件 已安装 VSCode。已在 VSCode 中安装 Remote - SSH 插件。目标 Linux 服务器 开启了 SSH 服务,并可以通过 SSH 访问。本地电脑已安装 SSH 客户端(Linux 和 macOS 自带,Windows 用户可以…...

设计心得——解耦的实现技术

一、说明 在前面的“设计心得——解耦”中,对解耦进行了高层次的抽象说明。本篇则对在实践中常用的解耦技术进行逐一分析说明,以期为开发者能更从理论到实践搭建一个桥梁。至于大家能够如何更好的在自己的项目中进行解耦的实践,就需要不断的…...

计算机毕业设计SpringBoot+Vue.jst在线文档管理系统(源码+LW文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

在windows下安装windows+Ubuntu16.04双系统(下)

这篇文章的内容主要来源于这篇文章,为正式安装windowsUbuntu16.04双系统部分。在正式安装前,若还没有进行前期准备工作(1.分区2.制作启动u盘),见《在windows下安装windowsUbuntu16.04双系统(上)》 二、正式安装Ubuntu …...

一文讲解Redis为什么读写性能高以及I/O复用相关知识点

Redis为什么读写性能高呢? Redis 的速度⾮常快,单机的 Redis 就可以⽀撑每秒十几万的并发,性能是 MySQL 的⼏⼗倍。原因主要有⼏点: ①、基于内存的数据存储,Redis 将数据存储在内存当中,使得数据的读写操…...

TPU(Tensor Processing Unit)详解

一、什么是TPU? TPU(Tensor Processing Unit,张量处理器)是谷歌专门为机器学习任务设计的定制化ASIC芯片,旨在加速神经网络训练与推理。其核心目标是针对矩阵运算(如矩阵乘加)优化硬件架构&…...

Ubuntu20.04.2安装Vmware tools

软件版本:Vmware Workstation Pro 17.6.2 操作系统镜像文件:ubuntu-20.04.2-desktop-amd64 方式1:用iso镜像安装 没用这种方法,太麻烦 方式2:用apt安装Open VM Tools 如果你使用的是较新的Ubuntu版本(如…...

检测服务端口是否开放的常用方法

检测服务端口是否开放的常用方法 文章目录 检测服务端口是否开放的常用方法背景使用nc命令使用 telnet 命令使用 curl 命令使用 openssl 命令使用 Python 脚本,socket连接使用 bash 内建命令:使用 nmap:总结 背景 有时候需要测试网络是否连通,端口是否开放&#xf…...

muduo源码阅读:socket常见操作及一些补充

TCP连接和释放 一个典型的TCP连接、通信过程: (假设有资源的一端是服务器端) 服务器会启用一个监听循环,不断接受client连接请求(三次握手建立连接), 进行数据通信,通信完成以后断开连接(四次挥手断开连接)。 对于…...

虚拟表格实现全解析

在数据展示越来越复杂的今天,大量数据的渲染就像是“满汉全席”——如果把所有菜肴一次性摆上桌,既浪费资源也让人眼花缭乱。幸运的是,我们有两种选择: 自己动手:通过二次封装 Element Plus 的表格组件,实…...

使用 Grafana 监控 Spring Boot 应用

随着软件开发领域的不断发展,监控和可观测性已成为确保系统可靠性和性能的关键实践。Grafana 是一个功能强大的开源工具,能够为来自各种来源的监控数据提供丰富的可视化功能。在本篇博客中,我们将探讨如何将 Grafana 与 Spring Boot 应用程序…...

使用Socket编写超牛的http服务器和客户端(一)

实现一个高性能的基于 IOCP(I/O Completion Ports)的 HTTP 服务器,支持多线程、动态线程池调整和路由处理。 主要功能和特性 IOCP 模型: 使用多个 IOCP 句柄(IOCP_COUNT),将客户端连接均匀分配到不同的 IOCP 上,减少线程竞争。 工作线程使用 GetQueuedCompletionStatu…...

python turtle模块有哪几种命令

python turtle模块命令的分类: 1、运动命令 2、笔画控制命令 3、其他命令...

【Transformer架构】

目录 一、Transformer介绍 1.1 Transformer的诞生 1.2 什么是Transformer 1.3 Transformer的优势 1.4 Transformer的市场 二、Transformer架构 2.1 Transformer模型的作用 2.2 Transformer总体架构图 2.2.1 Transformer总体架构 2.2.2 输入部分 2.2.3 输出部分 2.2.…...

unity学习50:NavMeshAgent 区域Areas和cost

目录 1 NavMeshAgent 区域和成本的问题 2 区域Areas 2.1 区域和颜色 2.2 区域和成本 2.3 区域成本的作用 2.4 地图测试准备 2.5 如何实现 2.5.1 unity的2022之前的老版本 2.5.2 unity的2022之后的新版本 2.6 如果测试失败,是因为没有bake 2.7 测试前&…...

Blender小技巧和注意事项

1.雕刻模式如果没反应,需要将模式转换成编辑模式 2. 鼠标移到大纲 点击 小键盘的. / 大键盘句号 , 在大纲视图快速找到选中物体 3.打包图像等数据进Blender文件中,可以防止丢失 4.拍摄小物体用长焦镜头 , 焦距120mm左右...

Python常见面试题的详解15

1. 死锁(Deadlock) 死锁指的是在多线程或者多进程的运行环境中,两个或多个线程(进程)彼此等待对方释放所占用的资源,进而陷入无限期等待的僵局,最终导致程序无法继续推进。 必要条件 互斥条件…...

代码审计初探

学会了基础的代码审计后,就该提高一下了,学一下一些框架的php代码审计 先从一些小众的、已知存在漏洞的cms入手 phpems php的一款开源考试系统 源码下载 https://down.chinaz.com/soft/34597.htm 环境部署 windows审计,把相关文件放到phps…...

Spring面试题2

1、compareable和compactor区别 定义与包位置:Comparable是一个接口,位于java.lang包,需要类去实现接口;而Compactor是一个外部比较器,位于java.util包 用法:Comparable只需要实现int compareTo(T o) 方法,比较当前对…...

Linux 权限系统和软件安装(二):深入理解 Linux 权限系统

在 Linux 的世界里,权限系统犹如一位忠诚的卫士,严密守护着系统中的文件与目录,确保只有具备相应权限的用户才能进行操作。与其他一些操作系统不同,Linux 并不依据文件后缀名来标识文件的操作权限,而是构建了一套独特且…...

Sentaurus仿真效率翻倍:详解Physics和Math模块里那些被你忽略的参数(以NPN仿真为例)

Sentaurus仿真效率翻倍:详解Physics和Math模块里那些被你忽略的参数(以NPN仿真为例) 在半导体器件仿真领域,Sentaurus作为行业标杆工具,其强大的功能背后往往隐藏着许多未被充分利用的性能优化参数。许多工程师在完成基…...

Phi-3-mini-4k-instruct-gguf行业落地:法律合同条款简写、医疗报告口语化转述

Phi-3-mini-4k-instruct-gguf行业落地:法律合同条款简写、医疗报告口语化转述 1. 模型简介与应用价值 Phi-3-mini-4k-instruct-gguf是微软推出的轻量级文本生成模型,特别适合处理专业领域的文本改写任务。这个模型虽然体积小,但在法律和医疗…...

保姆级教程:用Python脚本自动转换JD9365A初始化代码为RK3568设备树格式

Python自动化实战:JD9365A初始化代码转RK3568设备树全解析 当面对嵌入式Linux驱动开发时,最令人头疼的莫过于那些冗长而重复的寄存器配置工作。以JD9365A这款MIPI屏幕驱动芯片为例,其初始化代码往往包含上百条寄存器操作命令,手动…...

2025年网盘直链下载终极解决方案:八大网盘全速下载完全指南

2025年网盘直链下载终极解决方案:八大网盘全速下载完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 /…...

如何分析Data Guard的网络瓶颈_Bandwidth与Redo传输速率的计算公式

swag 是 Go 最成熟的 OpenAPI 文档生成工具,通过解析源码注释生成 swagger.json;需在项目根目录执行 swag init,handler 函数须带完整注释块且紧贴声明,结构体字段需 json tag,Gin/Echo 需手动注入 Swagger UI 路由。G…...

嵌入式老鸟的避坑指南:从芯片选型到驱动调试,那些教科书不会告诉你的实战经验

嵌入式开发实战避坑指南:从芯片选型到系统调优的深度解析 引子:那些年我们踩过的嵌入式大坑 记得刚入行嵌入式开发时,我接手了一个看似简单的SPI通信项目。按照教科书上的标准流程配置好寄存器后,却发现数据总是错位。熬了三个通宵…...

编程新手必看:coze-loop代码优化器保姆级使用教程

编程新手必看:coze-loop代码优化器保姆级使用教程 1. 认识你的AI编程助手:coze-loop 对于刚开始学习编程的朋友来说,写出高效、易读且无bug的代码往往是个挑战。coze-loop正是为解决这个问题而生的AI代码优化工具,它能像一位经验…...

I2C SPI 画图 工具 程序合集

INA219 电量监控 <!doctype html> <html lang"zh-CN"> <head><meta charset"utf-8" /><meta name"viewport" content"widthdevice-width, initial-scale1" /><title>Battery Pie HTML Only</…...

一键体验GPT-SoVITS:Docker部署+语音合成实战教程

一键体验GPT-SoVITS&#xff1a;Docker部署语音合成实战教程 1. 为什么选择GPT-SoVITS进行语音合成 语音合成技术近年来取得了长足进步&#xff0c;但大多数开源项目要么需要大量训练数据&#xff0c;要么音质不够理想。GPT-SoVITS的出现改变了这一局面&#xff0c;它结合了G…...

前端八股文面经大全:携程前端一面(2026-04-17)·面经深度解析

前言 大家好&#xff0c;我是木斯佳。 相信很多人都感受到了&#xff0c;在AI浪潮的席卷之下&#xff0c;前端领域的门槛在变高&#xff0c;纯粹的“增删改查”岗位正在肉眼可见地减少。曾经热闹非凡的面经分享&#xff0c;如今也沉寂了许多。但我们都知道&#xff0c;市场的…...