【小白向超详细】使用 VSCode 远程连接 Linux 服务器详细教程
使用 VSCode 远程连接 Linux 服务器详细教程
前提条件
- 已安装 VSCode。
- 已在 VSCode 中安装 Remote - SSH 插件。
- 目标 Linux 服务器 开启了 SSH 服务,并可以通过 SSH 访问。
- 本地电脑已安装 SSH 客户端(Linux 和 macOS 自带,Windows 用户可以安装 OpenSSH)。
一、安装 Remote - SSH 插件
- 打开 VSCode。
- 点击左侧扩展(Extensions)图标。
- 搜索 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
- 点击 VSCode 左下角绿色按钮(打开远程开发菜单)。
- 选择 Remote-SSH: Connect to Host…。
3.2 选择服务器
- 在弹出的输入框中,输入你在
~/.ssh/config中配置的 Host,例如my-linux-server。 - 按下回车后,VSCode 会尝试通过 SSH 连接到服务器。
3.3 输入密码或配置免密登录
- 如果没有配置免密登录,会提示输入服务器的 SSH 密码。
- 如果设置了公钥认证(免密登录),直接连接即可。
四、解决远程连接问题
常见错误及解决方法:
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 公钥认证。
-
本地生成公钥和私钥:
ssh-keygen -t rsa -b 4096按提示选择保存路径(默认路径为
~/.ssh/id_rsa)。 -
将公钥上传到服务器:
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" -
测试免密登录:
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:总结 背景 有时候需要测试网络是否连通,端口是否开放…...
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 并不依据文件后缀名来标识文件的操作权限,而是构建了一套独特且…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
