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

【配置环境】Windows下 VS Code 远程连接虚拟机Ubuntu

  • Windows 11 家庭中文版
  • VMware® Workstation 16 Pro (版本:16.1.2 build-17966106)
  • ubuntu-22.04.2-desktop-amd64

  • Windows下安装OpenSSH
  • VS Code安装Remote - SSH插件

  1. 在Ubuntu上安装SSH服务器。打开终端,并依次运行以下命令来安装OpenSSH服务器,并启动SSH服务器:
    1. sudo apt update
    2. sudo apt install openssh-server
    3. service sshd restart
  2. 打开Windows上的VS Code,并安装“Remote - SSH”扩展。在侧边栏的扩展视图中搜索“Remote - SSH”并安装它。
  3. 在VS Code中打开命令面板。你可以通过按下 Ctrl+Shift+P(或者点击VS Code左下角的“打开远程窗口”按钮)来打开命令面板。
  4. 在命令面板中,输入“Remote-SSH: Connect to Host”,然后选择该选项。
  5. 在弹出的菜单中选择“Configure SSH Hosts”。
  6. 选择“~/.ssh/config”文件或者创建新的配置文件。
  7. 在配置文件中,添加以下内容,替换主机名为Ubuntu的IP地址或主机名,用户名为您在Ubuntu上的用户名:
  8. 返回到命令面板,再次输入“Remote-SSH: Connect to Host”(或者点击VS Code左下角的“打开远程窗口”按钮),然后选择刚才配置的连接。
  9. 输入您的Ubuntu用户密码进行身份验证,但这里遇到了如下错误,说明Windows环境中没有安装OpenSSH客户端。

  10. 以管理员身份运行 PowerShell,使用 PowerShell 安装 OpenSSH。 为了确保 OpenSSH 可用,请运行以下命令:
    1. Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
  11. 如果尚未安装SSH客户端,则上面的操作会输出以下内容:
    1. Name : OpenSSH.Client~~~~0.0.1.0
    2. State : NotPresent
  12. 然后,执行以下命令安装OpenSSH客户端
    1. Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  13. 启动并配置 OpenSSH 服务器来开启使用,然后依次运行以下命令来启动 sshd
    1. Start-Service sshd
    2. Set-Service -Name sshd -StartupType 'Automatic'
    3. if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..." New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 } else { Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists." }
  14. 然后再回到步骤8,进行操作。
  15. 连接成功后,VS Code会打开一个新的窗口,显示Ubuntu上的文件系统(可以使用“文件”>“打开文件夹”浏览和打开远程主目录中的文件夹。)。
  16. 然后就可以在VS Code中编写、保存和运行Ubuntu环境中的代码了。
  17. 如果要结束 SSH 连接,可以使用“文件”>“关闭远程连接”返回到在本地运行 VS Code。

1.Windows 安装 OpenSSH

2.通过 SSH 进行远程开发

3.远程开发提示和技巧

1.SSH(Secure Shell)是一种用于远程登录和安全文件传输的网络协议。它提供了一种通过不安全的网络连接(例如,互联网)在客户端和远程服务器之间进行安全的加密通信的方式。以下是SSH的介绍:

  • 安全性:SSH是一个加密协议,可确保通过不安全的网络连接传输的数据的安全性。它使用公钥加密和对称密钥加密来保护通信的机密性,防止数据被窃听和篡改。
  • 远程登录:SSH最常用的用途是远程登录。使用SSH客户端,用户可以通过Internet连接到远程服务器,并在远程服务器上执行命令和访问资源,就好像他们直接在服务器上操作一样。
  • 文件传输:SSH提供了安全的文件传输机制,称为SCP(Secure Copy)或SFTP(SSH File Transfer Protocol)。使用SCP或SFTP,用户可以在本地计算机和远程服务器之间安全地传输文件。
  • 用户身份认证:SSH使用公钥加密来进行身份验证。在建立SSH连接时,客户端和服器之间会进行公钥交换。客户端会生成一对密钥(公钥和私钥),将公钥发送给服务器。服务器将公钥与特定用户关联,并用于验证用户身份。
  • 端口和配置:SSH使用默认的TCP端口22进行通信。但是,可以在需要时更改SSH服务器的端口。此外,SSH服务器的配置文件位于服务器上,并且可以用来定义许多不同的行为和限制。
  • 客户端和服务器:SSH由SSH客户端和SSH服务器组成。客户端用于发起SSH连接并向服务器发送命令和请求。服务器负责接受客户端连接,并提供所需的服务(登录、文件传输等)。
  • 公共网络:由于SSH提供了安全的加密通信,它被广泛用于在不受信任的公共网络上访问远程服务器。通过SSH,用户可以在互联网上安全地使用远程服务器而无需担心敏感数据的安全性。

总之,SSH是一种安全的远程登录和文件传输协议,它提供了加密通信和身份验证机制,使用户能够在不安全的网络上安全地访问和操作远程系统。


2.OpenSSH是一个开源的实现了远程登录和安全文件传输功能的软件套件。它是SSH协议的一个实现,并提供了一系列命令行工具和守护进程,用于在网络上进行安全的远程访问和文件传输。以下是OpenSSH的介绍:

  • 功能:OpenSSH提供了通过加密通信协议的安全远程登录和文件传输功能。它支持SSH协议的各种功能,包括加密、公钥和身份验证、远程命令执行、文件传输(通过SCP和SFTP),以及端口转发和隧道等功能。
  • 安全性:OpenSSH致力于提供安全的通信和数据传输。它使用加密技术保护通信内容,确保数据在传输过程中不被窃听、篡改或伪造。其中包括使用对称密钥算法和公钥加密算法对通信进行加密,并使用各种身份验证方法(例如密码、公钥和证书)确保用户的身份验证。
  • 组件:OpenSSH由几个核心组件组成。其中,OpenSSH客户端(ssh)用于发起SSH连接并与远程主机交互;OpenSSH服务器(sshd)在远程主机上运行,并负责接受SSH连接、进行用户身份验证以及提供远程登录和文件传输服务;还有其他辅助工具如ssh-keygen用于生成和管理密钥对,以及ssh-agent用于管理私钥的代理身份验证。
  • 操作系统支持:OpenSSH可以在多种操作系统上运行,包括各种类Unix系统(如Linux、BSD等)以及Microsoft Windows的版本。可以在这些系统上方便地安装和配置OpenSSH,以实现安全的远程登录和文件传输。
  • 配置文件和自定义:OpenSSH提供了灵活的配置选项,使用户可以根据特定需求进行自定义。通过修改OpenSSH的配置文件(如sshd_config),可以定义安全策略、访问控制规则、端口设置、用户配置等。这使得OpenSSH适应不同的环境和需求。
  • 社区支持和开源:OpenSSH是一款开源软件,它的源代码是公开可用的。这使得用户和开发人员可以自由地查看、修改和分发代码,并贡献改进。OpenSSH拥有强大的社区支持和广泛的用户群体,因此能够在保持安全性的前提下不断改进和更新。

总体而言,OpenSSH是一款功能强大的开源软件套件,它提供了安全远程登录和文件传输的功能,并通过其加密通信协议确保了数据和用户身份的安全性。它被广泛用于管理远程系统、进行系统维护、远程合作、备份和文件传输等各种应用场景。

相关文章:

【配置环境】Windows下 VS Code 远程连接虚拟机Ubuntu

一,环境 Windows 11 家庭中文版VMware Workstation 16 Pro (版本:16.1.2 build-17966106)ubuntu-22.04.2-desktop-amd64 二,关键步骤 Windows下安装OpenSSHVS Code安装Remote - SSH插件 三,详细步骤 在Ubun…...

【设计模式——学习笔记】23种设计模式——组合模式Composite(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入 学校院系展示 编写程序展示一个学校院系结构: 需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系 【传统方式】 将学院看做是学校的子类,系是学院的子类,小的组织继承大…...

vue3+Luckysheet实现表格的在线预览编辑(electron可用)

前言: 整理中 官方资料: 1、github 项目地址https://github.com/oy-paddy/luckysheet-vue-importAndExport/tree/master/https://github.com/oy-paddy/luckysheet-vue-importAndExport/tree/master/ 2、xlsx vue3 json数据导出excel_vue3导出excel_羊…...

前端html中让两个或者多个div在一行显示,用style给div加上css样式

文章目录 前言一、怎么让多个div在一行显示 前言 DIV是层叠样式表中的定位技术,全称DIVision,即为划分。有时可以称其为图层。DIV在编程中又叫做整除,即只得商的整数。 DIV元素是用来为HTML(标准通用标记语言下的一个应用&#x…...

【linux基础(二)】Linux基本指令(中)

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到开通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux基本指令 1. 前言2. 删除…...

ceph集群---使用RBD块存储

文章目录 创建和删除池RBD设备的配置及使用RBD 块设备数据的导出和导入 块存储接口是一种主流的存储访问接口,也是常见的存储形态,比如服务器下的/dev/sdx都是块存储设备。你可以像使用磁盘一样来使用Ceph提供的块存储设备。 在创建块存储设备之前&#…...

2022.09.17【读书笔记】丨生物信息学与功能基因组学(第十三章 蛋白质结构预测 下)

目录 蛋白质结构预测三种方法同源建模(比较建模)穿线法从头预测(ab initio)基于假设推荐策略 精度与方法选择Alphafold2相关信息 蛋白质结构预测 三种方法 同源建模(比较建模) 建模4步骤 1.模板选择和确定折叠构象 通过blast或delta-blast搜索同源蛋白…...

ardupilot获取飞行员目标倾斜角度

目录 文章目录 目录摘要1. 4.0.7获取目标倾斜角度2. 4.3.7获取目标倾斜角度3.仿真摘要 本节主要记录ardupilot获取目标倾斜角度的两种实现方法,主要针对4.0.7和4.3.7进行对比。 1. 4.0.7获取目标倾斜角度 1.姿态模式下获取函数 //获取飞行员期望的倾斜角度get_pilot_desire…...

机器人制作开源方案 | 智能垃圾桶

1. 功能说明 智能垃圾桶是一种利用物联网技术和智能感知能力的智能设备,旨在提高垃圾分类和处理的效率。通常具备以下特点和功能: ① 智能感知:智能垃圾桶配备各种传感器,如压力传感器、红外线传感器等,可以实时感知…...

【手撕】list

系列文章目录 文章目录 系列文章目录前言list_node<T>&#xff08;节点&#xff09;_list_iterator<T, Ref, Ptr>&#xff08;迭代器&#xff09;成员变量构造函数运算符重载 List<T>&#xff08;链表&#xff09;成员变量构造函数析构函数区间构造函数拷贝构…...

QMQTT快速入门

文章目录 QMQTT快速入门环境搭建mosquitto 服务器和客户端配置服务器配置客户端配置模拟MQTT的发布订阅 QMQTT - Windows下的客户端项目代码展示遇到的问题 QMQTT快速入门 环境搭建 准备一台linux设备和一台windows设备虚拟机也是可以的&#xff1b;安装mosquitto &#xff1…...

Dooring-Saas低代码技术详解

hello, 大家好, 我是徐小夕, 今天和大家分享一下基于 H5-Dooring零代码 开发的全新零代码搭建平台 Dooring-Saas 的技术架构和设计实现思路. 背景介绍 3年前我上线了第一版自研零代码引擎 H5-Dooring, 至今已迭代了 300 多个版本, 主要目的是快速且批量化的生产业务/营销过程中…...

Linux chmod

chmod 首先chmod 用于修改文件权限&#xff0c;使用命令 ll 查看文件列表&#xff0c;或者使用stat文件名 可以查看其相应的权限 显示的形式为例如 rwx r- - r-- &#xff0c;即所有者拥有读写执行的权限 &#xff0c;同组人员和其他人都只拥有读的权限 一般修改权限为三部分…...

java商城系统和php商城系统有什么差异?如何选择?

java商城系统和php商城系统是两种常见的电子商务平台&#xff0c;它们都具有一定的优势和劣势。那么&#xff0c;java商城系统和php商城系统又有哪些差异呢&#xff1f; 一、开发难度 Java商城系统和PHP商城系统在开发难度方面存在一定的差异。Java商城系统需要使用Java语言进…...

【HTML】常用实体字符(如 nbsp; 空格)

文章目录 显示结果描述实体名称实体编号空格 <小于号<<>大于号>>&和号&amp;"引号&quot; ’撇号&apos; (IE不支持)&#xffe0;分&#xff08;cent&#xff09;¢¢£镑&#xff08;pound&#xff09;£ £元&…...

华为eNSP通过VMnet8虚拟网卡,NAT转换访问互联网

防火墙上配置&#xff1a; 配置G1/0/1接口IP地址&#xff0c;其实G1/0/1的IP就是终端PC1的网关地址。 配置G1/0/0接口自动获取IP地址&#xff0c;从VMnet8中自动获取地址。 配置安全区域zone,把对应的接口加入到对应的zone中 配置安全策略&#xff0c;放通trust安全区域到u…...

手撕顺序表

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大一&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 望小伙伴们点赞&#x1f44d;收藏✨加关注哟&#x1f495;&#x1…...

Python实战项目——旅游数据分析(四)

由于有之前的项目&#xff0c;所以今天我们直接开始&#xff0c;不做需求分析&#xff0c;还不会需求分析的可以看我之前的文章。Python实战项目——用户消费行为数据分析&#xff08;三&#xff09; 导入库 import numpy as np import pandas as pd import matplotlib.pyplo…...

前端CryptoJS-AES加解密 对应php的AES-128-CBC加解密踩坑(java也相同加解密)

前端部分注意看填充是pkcs7 有个前提&#xff0c;要看前端有没有转成hex格式&#xff0c;如果没转&#xff0c;php那边就不需要调用特定函数转hex格式的 const keyStr 5hOwdHxpW0GOciqZ;const iv 0102030405060708;//加密function Encrypt(word) {let key CryptoJS.enc.Ut…...

Python解码张三的法外狂徒之旅,揭秘视频背后的真相!【含jS逆向解密】

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 传说中&#xff0c;有人因为只是远远的看了一眼法外狂徒张三就进去了&#x1f602; 我现在是获取他视频&#xff0c;岂不是直接终生了&#x1f929; 网友&#xff1a;赶紧跑路吧 &#x1f60f; 好了话不多说&#xff…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...