VSCode远程连接Ubuntu/Linux
文章目录
- 前言
- SSH(Secure Shell)简介
- 主要功能
- 工作原理
- 常见的 SSH 客户端和服务器
- Ubuntu安装ssh
- vscode远程插件
- 安装远程插件
- 开始远程连接
- 打开文件夹
- 新建终端
- 总结
前言
在现代开发环境中,远程工作和跨平台开发变得越来越普遍。Visual Studio Code(VSCode)作为一个流行的代码编辑器,提供了强大的远程开发功能,使得开发者能够高效地连接和管理远程 Linux 服务器上的项目。通过 VSCode 的远程开发扩展,开发者可以在本地编辑代码,同时在远程 Ubuntu/Linux 服务器上执行和调试,享受本地开发的便捷和远程系统的强大计算资源。本文将介绍如何配置 VSCode 以远程连接到 Ubuntu/Linux 服务器,并展示如何利用这一功能提升开发效率。
SSH(Secure Shell)简介
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地访问远程计算机。它提供了一个加密的通信通道,确保数据在传输过程中的保密性和完整性。SSH 被广泛用于远程登录、执行命令、文件传输等操作,是现代网络安全的重要组成部分。
主要功能
-
远程登录:
- SSH 允许用户安全地远程登录到另一台计算机,并在该计算机上执行命令,就像在本地计算机上一样操作。
-
安全文件传输:
- 通过 SCP(Secure Copy Protocol)或 SFTP(Secure File Transfer Protocol),SSH 支持安全的文件传输。用户可以安全地从本地计算机向远程计算机传输文件,或从远程计算机下载文件。
-
端口转发:
- SSH 支持端口转发功能,允许用户将本地计算机的端口转发到远程计算机的端口,从而实现安全的网络访问。这在访问受限网络服务时特别有用。
-
隧道加密:
- SSH 可以通过创建加密隧道来保护通过不安全网络传输的数据,这对于保护敏感信息非常重要。
-
身份验证:
- SSH 支持多种身份验证方式,包括基于密码和基于密钥的身份验证。基于密钥的身份验证提供了更高的安全性,因为它避免了密码在网络中传输的风险。
工作原理
-
建立连接:
- 客户端和服务器通过 SSH 协议进行握手,建立加密连接。服务器将自己的公钥发送给客户端,客户端使用该公钥加密随机生成的会话密钥,并将其发送给服务器。
-
身份验证:
- 客户端通过输入密码或提供密钥进行身份验证。如果身份验证成功,客户端和服务器之间的通信就会使用加密的会话密钥进行保护。
-
数据传输:
- 一旦建立了安全的连接,所有的通信数据都会经过加密,确保数据的保密性和完整性。
常见的 SSH 客户端和服务器
-
SSH 客户端:
- OpenSSH:开源的 SSH 实现,支持多种操作系统,包括 Linux、macOS 和 Windows。
- PuTTY:Windows 平台上的流行 SSH 客户端,提供图形用户界面和命令行界面。
-
SSH 服务器:
- OpenSSH Server:广泛使用的开源 SSH 服务器,通常预装在 Linux 和 macOS 系统中。
- Dropbear:轻量级的 SSH 服务器,适用于资源受限的环境,如嵌入式系统。
Ubuntu安装ssh
在 Ubuntu 上安装 SSH 服务,可以使用 apt 包管理器来完成。通常,安装 SSH 服务涉及到安装 OpenSSH 服务器。以下是具体的步骤:
-
更新软件包列表:
打开终端并运行以下命令,以确保你的软件包列表是最新的:
sudo apt update -
安装 OpenSSH 服务器:
运行以下命令安装 OpenSSH 服务器:
sudo apt install openssh-server这个命令会安装 OpenSSH 服务器及其相关依赖,使你能够通过 SSH 协议访问你的 Ubuntu 系统。
-
检查 SSH 服务状态:
安装完成后,你可以检查 SSH 服务是否正在运行:
sudo systemctl status ssh你应该会看到服务状态信息,如果服务正在运行,状态应该显示为“active (running)”。
-
启动或重启 SSH 服务(如果需要):
如果 SSH 服务没有自动启动,或者你对 SSH 配置进行了更改,需要重新启动服务,可以使用以下命令:
sudo systemctl start ssh sudo systemctl enable sshsudo systemctl start ssh:启动 SSH 服务。sudo systemctl enable ssh:设置 SSH 服务在系统启动时自动启动。
-
检查防火墙设置(如果有防火墙):
如果你启用了防火墙(例如
ufw),你需要允许 SSH 流量通过:sudo ufw allow ssh或者,允许端口 22(默认的 SSH 端口):
sudo ufw allow 22最后,检查防火墙状态,确保规则已生效:
sudo ufw status
完成这些步骤后,你的 Ubuntu 系统应该能够接受 SSH 连接。你可以从另一台计算机使用 SSH 客户端连接到你的 Ubuntu 系统,例如:
ssh username@hostname_or_ip_address
这里 username 是你的 Ubuntu 用户名,hostname_or_ip_address 是 Ubuntu 系统的主机名或 IP 地址。
vscode远程插件
安装远程插件
在插件栏搜索remote下载第二个Remote - SSH

下载完之后我们可以看到这个:

这样就是ok了
开始远程连接
在开始连接之前你需要先确定你的ubuntu是否开启ssh
点击远程图标:

选择连接到主机

选择添加新的ssh主机

输入主机信息

它的规范为:主机名@ip地址:ssh端口号,主机名可以在ubuntu终端看到xxx@yyy其中@前面的为主机名也就是xxx,ip地址在终端输入ifconfig即可看到。端口号默认为22

回车,然后选择第一个:

点击连接

在新的窗口里面输入你的密码:

这样就是ok了:

打开文件夹
按照下面的步骤即可打开文件夹,然后你需要去选择你要打开文件夹的目录:

在打开之后,它会叫你输入你的密码,你就输入

然后你就可以开始使用了

新建终端
点击这里可以新建终端供你使用

总结
通过配置 VSCode 的远程开发扩展,开发者可以无缝地连接到 Ubuntu/Linux 服务器,实现本地开发环境与远程服务器的集成。这种设置不仅提高了开发效率,还优化了资源的利用,使得开发者能够在强大的远程服务器上进行高性能计算,而无需在本地机器上进行繁重的编译和执行任务。借助 VSCode 的强大功能和灵活的配置,开发者可以轻松管理跨平台项目,提升团队协作能力,并保持高效的工作流。通过本文的指导,你可以迅速设置和优化你的远程开发环境,享受现代开发工具带来的便捷和高效。
相关文章:
VSCode远程连接Ubuntu/Linux
文章目录 前言SSH(Secure Shell)简介主要功能工作原理常见的 SSH 客户端和服务器 Ubuntu安装sshvscode远程插件安装远程插件开始远程连接 打开文件夹新建终端 总结 前言 在现代开发环境中,远程工作和跨平台开发变得越来越普遍。Visual Studi…...
【Nginx80端口被占用】80端口被System占用如何解决【已解决】
【Nginx80端口被占用】80端口被System占用如何解决【已解决】 01 问题背景 Nginx 版本 1.19及以上80端口被System占用,无法kill tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::80 :::* LISTEN 1/systemd 执行以下代码无效&…...
云计算的发展历程与边缘计算
云计算的发展历程 初期发展(1960s-1990s) 概念萌芽:云计算的概念可以追溯到1960年代,当时约翰麦卡锡(John McCarthy)提出了“计算将来可能成为一种公共设施”的想法。这个概念类似于现代的云计算…...
199.二叉树的右视图(DFS)
给定一个二叉树的根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: [] 解题…...
机器学习基础入门(1)
最近也在努力的想要学习些机器学习的知识,目前正在了解各个概念及术语,下面就把学习到的概念都列出来。 人工智能 (AI) Artificial intelligence 人工智能生成内容(AIGC) 机器学习(ML) Machine Learning …...
mybatis的xml中,where标签不自动删除多余的and之类的问题
遇到了这个莫名其妙的问题,起初是很疑惑的,where标签好像失灵了一般不会自动删除掉 多余的and 看了眼sql语句,发现还是有and没被删除。 后来重新写了遍后发现又没事了。真的是神人。 然后就研究了好一会,发现!&#…...
RK3588 编译opencvopencv_contrib记录
RK3588 编译opencv&opencv_contrib记录 1. 下载文件1.1 opencv源码1.2 安装cmake 2.开始编译2.1 提示缺少boostdesc_bgm.i 等问题2.2 提示缺少某hpp头文件2.3 其它问题 3. 设置环境变量4. 测试5.参考 1. 下载文件 1.1 opencv源码 需要opencv和opencv-contrib的版本号保持…...
Eureka: 微服务架构中的服务发现与注册实践
Eureka介绍与使用教程 你好,我是悦创。 Eureka 是 Netflix 开发的一款服务发现(Service Discovery)工具,它主要用于云中基于微服务架构的应用程序。Eureka使服务实例能够动态地注册自己,而其他服务实例可以通过 Eure…...
8、添加第三方包
目录 1、安装Django Debug Toolbar Django的一个优势就是有丰富的第三方包生态系统。这些由社区开发的包,可以用来快速扩展应用程序的功能集 1、安装Django Debug Toolbar Django Debug Toolbar位于名列前三的第三方包之一 这是一个用于调试Debug Web应用程序的有…...
【算法】算法模板
算法模板 文章目录 算法模板简介数组字符串列表数学树图动态规划 简介 博主在LeetCode网站中学习算法的过程中使用到并总结的算法模板,在算法方面算是刚过初学者阶段,竞赛分数仅2000。 为了节省读者的宝贵时间,部分基础的算法与模板未列出。…...
特征工程方法总结
方法有以下这些 首先看数据有没有重复值、缺失值情况 离散:独热 连续变量:离散化(也成为分箱) 作用:1.消除异常值影响 2.引入非线性因素,提升模型表现能力 3.缺点是会损失一些信息 怎么分:…...
Unity | AssetBundle
1 定义 Unity中的一种特殊资源包格式,用于存储和分发游戏资源。这些资源可以包括模型、纹理、音频文件、预制体、场景等。 AssetBundle允许开发者在游戏运行时动态加载和卸载资源,从而实现灵活的资源管理。 2 使用场景 1、资源管理 有效管理游戏中的资…...
【虚幻引擎】C++网络通信TCP和HTTP实战开发全流程,以接入科大讯飞星火大模型和文心一言千帆大模型为案例讲解
本套课程介绍了使用我们的虚幻C去写开发我们的插件开发,如何使用我们的虚幻C 封装我们的TCP和HTTP,如何使用的我们虚幻C子系统,如何根据第三方文档去写接口请求,如何通过我们的加密算法去签名我们的URL,如何声明我们的…...
.NET单元测试使用AutoFixture按需填充的方法总结
AutoFixture是一个.NET库,旨在简化单元测试中的数据设置过程。通过自动生成测试数据,它帮助开发者减少测试代码的编写量,使得单元测试更加简洁、易读和易维护。AutoFixture可以用于任何.NET测试框架,如xUnit、NUnit或MSTest。 默…...
求职学习day5
安排明天hr面 投一下平安可能。 hr面准备,复习java核心技术,复习java项目。 正视自己,调整心态。 也是很早接触了javaguide但是没有持续学习,项目介绍 | JavaGuide,面试前复习一下感觉还是很有收获的。 还有一些…...
微服务常用的中间件有哪些?都有什么用途?
前言 最近整理一下我们的项目使用了哪些中间件,借此机会也来分享一下,在微服务架构中我们常用的那些中间件,都有什么作用,为什么要使用中间件。 消息中间件-RocketMQ 比如RocketMQ,RocketMQ 是一个开源的分布式消息…...
华为云认证
华为云认证 首页 云原生 DevOps工作级开发者认证:HCCDP – Cloud Native DevOps 对云上敏捷开发感兴趣的人员,培训DevOps的理论知识及在云端交付软件全生命周期的实操能力。 DevOps...
【Linux学习】常用基本指令
🔥个人主页: Forcible Bug Maker 🔥专栏:Linux学习 目录 🌈前言🔥XShell的一些使用查看Linux主机IP使用XShell登录主机XShell下的复制粘贴 🔥Linux下常用基本指令ls指令pwd指令cd指定touch指令…...
windows上安装Apache
安装前须知: 下载并安装,如未完成,请访问下载页面。安装Apache前需要安装Visual C Redistributable for Visual Studio 2015-2022 x64。 解压与配置: 将Apache24文件夹解压至C:\Apache24(这是配置中的ServerRoot&am…...
wps office 2019 Pro Plus 集成序列号Vba安装版教程
前言 wps office 2019专业增强版含无云版是一款非常方便的办公软件,我们在日常的工作中总会碰到需要使用WPS的时候,它能为我们提供更好的文档编写帮助我们更好的去阅读PDF等多种格式的文档,使用起来非常的快捷方便。使用某银行专业增强版制作…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
