0


【环境配置】【保姆级教程】VSCode SSH 连接 VMware虚拟机Linux Ubuntu 22.04 配置

目录

本文介绍VS Code通过SSH协议访问VMware虚拟机中的工作区。

操作系统

主机使用Win11,虚拟机使用Linux Ubuntu 22.04。

网络环境

使用SSH建立VSCode与虚拟机的连接需要配置网络环境。
VMware中虚拟机网络连接提供了五个选项,分别是桥接模式NAT模式仅主机模式自定义LAN区段。VMware中虚拟机默认通过NAT连接网络。
image.png

NAT模式

NAT(Network Address Translation),是指网络地址转换,1994年提出的。NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。NAT实际上是为解决IPv4地址短缺而开发的技术。
NAT1.jpg
VMware在主机上通过应用程序提供NAT服务。
image.png
对应NAT模式图中的内容可以在网络适配器中找到Vmnet8虚拟网卡。
image.png
NAT模式服务设置在VMware中配置。
image.png
image.png

NAT网络环境配置

此处NAT不添加配置,使用默认配置。

查看NAT中的网络地址

配置主机和虚拟机网络需要:

IP地址、子网掩码、网关IP。
DNS。

虚拟网络编辑器中找到并点击NAT设置
image.png
子网掩码网关IP
image.png
找到并点击DHCP设置
image.png
找到IP地址范围。
image.png
由以上操作找到了IP地址范围网关IP子网掩码

IP地址范围(起始IP地址——结束IP地址):192.168.37.128——192.168.37.254
网关IP :192.168.37.2
子网掩码:255.255.255.0

DNS服务器设置为固定IP。

DNS IP:8.8.8.8

主机网络地址配置

IP地址 :192.168.37.128
网关IP :192.168.37.2
子网掩码 :255.255.255.0
DNS :8.8.8.8

虚拟机网络地址配置

IP地址 :192.168.37.129
网关IP :192.168.37.2
子网掩码 :255.255.255.0
DNS :8.8.8.8

主机网络配置

主机控制面板中找到VMnet8——右键单击——属性
image.png
找到

Internet协议版本 4(TCP/IPv4)

,点击属性
image.png
配置IP地址子网掩码默认网关DNS
image.png

虚拟机网络配置

虚拟机网络配置介绍两种方式 :设置界面配置修改配置文件。两种方式配置等效。

通过设置界面配置

打开设置
image.png
找到网络——有线——设置
image.png
点击IPv4
image.png
配置IPv4。
image.png
配置完成后重启网络配置。
image.png

通过配置文件配置

配置文件目录 :/etc/netplan/

ls /etc/netplan/
# 01-network-manager-all.yamlsudovim /etc/netplan/01-network-manager-all.yaml

文件内容。

# Let NetworkManager manage all devices on this systemnetwork:version:2renderer: NetworkManager
  ethernets:enps33:dhcp4: no
      addresses:- 192.168.37.129/24
      routes:-to: 0.0.0.0/0
          via: 192.168.37.2
      nameservers:addresses:[8.8.8.8]
ens33

为网络接口名称。
image.png

/24

是子网掩码(相当于

255.255.255.0

)。

routes

关键字被用来定义一个到达任意地址(

0.0.0.0/0

)的默认路由,其网关地址是

192.168.37.2


到达任意地址的默认路由

routes

字段也可以使用以下配置。

routes:

  • to: default
    via: 192.168.37.2
nameservers

下的

addresses

关键字用来定义DNS服务器地址。‌
应用配置。

sudo netplan apply

查看配置。

ifconfig 或 ip addr show

image.png

SSH认证

SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录和其他安全网络服务。它提供了一种加密的、安全的替代方法,用于远程登录到另一台计算机,确保数据在传输过程中的安全性和完整性。SSH协议在七层网络模型的应用层运行,通常基于‌TCP协议,但也可以利用UDP等协议的特性,以提供高效、有序的数据传输。‌
SSH客户端(主机)登录SSH服务端(虚拟机)需要认证,通过认证的服务端才能通过SSH登录客户端。此处介绍密钥对认证(推荐)和用户名+密码认证

密钥对认证

密钥对指的是由特定的身份验证协议使用的公钥私钥文件。
SSH 公钥身份验证使用不对称加密算法来生成两个密钥文件 – 一个为“私钥”文件,一个为“公钥”文件。 私钥文件等效于密码,在所有情况下都应当保护它们。 如果有人获取了你的私钥,则他们可以像你一样登录到你有权登录的任何 SSH 服务器。 公钥放置在 SSH 服务器上,并且可以共享,不会危害私钥的安全。
基于密钥的身份验证使 SSH 服务器和客户端能够将提供的用户名的公钥与私钥进行比较。 如果无法依据客户端私钥验证服务器端公钥,则身份验证失败。

用户名+密码认证

客户端(主机)登录服务端时(虚拟机)使用服务端的用户名+密码进行登录。

主机SSH配置

Windows 10及以上版本自带了OpenSSH客户端,‌无需额外安装。‌

配置认证方式

a)密钥对认证配置

以下使用到的Windows命令在PowerShell中执行。
若要使用基于密钥的身份验证,首先需要为客户端生成公钥/私钥对ssh-keygen.exe 用于生成密钥文件,可以指定DSARSAECDSAEd25519 算法。 如果未指定算法,则使用RSA。 应使用强算法和密钥长度。
使用Ed25519算法生成密钥对文件。

ssh-keygen -t ed25519

PS C:\Users\Administrator> ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\Administrator/.ssh/id_ed25519):  # 密钥对保存路径
Enter passphrase (empty for no passphrase):                # 输入密码,空表示不设置密码
Enter same passphrase again:                                            # 确认密码
Your identification has been saved in C:\Users\Administrator/.ssh/id_ed25519
Your public key has been saved in C:\Users\Administrator/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:pt/THqXdd7ACoW20Ay49UqsBLi2SqMyief3KaDv6KSY [username]@[LOCAL-HOSTNAME]
The key's randomart image is:
+--[ED25519 256]--+|||||.   o o      ||.. o .+* o     ||+ o o + S *   o  ||+. o   B o o ++||oo .  o    .+ o +||Eo++.....o  o||**=ooo...o.|+----[SHA256]-----+

在指定的路径生成了密钥对。
image.png

C:\Users\Administrator/.ssh/id_ed25519
C:\Users\Administrator/.ssh/id_ed25519.pub

如果不指定算法,生成的密钥对名称是

id_rsa

id_rsa.pub

.pub

文件是公钥,没有扩展名的文件是私钥。

b)用户名+密码认证配置

主机无需配置。

虚拟机SSH配置

安装OpenSSH服务器软件包

安装OpenSSH服务器软件包。

sudo apt update

sudo apt install openssh-server

查看SSH服务是否正在运行

查看SSH服务是否正在运行。

sudo systemctl status ssh

image.png

如果SSH服务没有自动启动,手动启动:
sudo systemctl start ssh

配置SSH服务设置为开机启动

配置SSH服务设置为开机启动。

sudo systemctl enable ssh

配置SSH服务器设置

配置SSH服务器设置,编辑

/etc/ssh/sshd_config

文件。

sudo vim /etc/ssh/sshd_config

如果修改了

sshd_config

文件,重启SSH服务,应用更改。

sudo systemctl restart ssh

设置防火墙允许SSH连接

设置防火墙允许SSH连接。

sudo ufw allow ssh

配置认证方式

a)密钥对认证配置

使用密钥对认证不用修改

shd_config

文件,保持

openssh-server

的默认配置即可。
需要将主机中生成的SSH公钥添加到虚拟机

/home/[username]/.ssh/authorized_keys

文件中。

/home/[username]/.ssh/authorized_keys

文件中添加主机中生成的

.pub

key,并保存。

vim /home/[username]/.ssh/authorized_keys

image.png

b)用户名+密码认证配置

配置用户名+密码方式认证需修改SSH配置文件。

sudo vim /etc/ssh/sshd_config

shd_config

配置文件中的

PasswordAuthentication

是指通过SSH协议进行身份验证时是否允许使用密码认证。去掉

PasswordAuthentication

前面的

#

,保存文件。
image.png

连接SSH

主机连接虚拟机SSH。
在主机PowerShell中输入以下命令。

ssh [username]@[host-ip-address]

[username]

是Ubuntu用户名,

[host-ip-address]

是Ubuntu服务器的IP地址。

ssh user0@192.168.37.129

VS Code配置

添加扩展

在VS Code 扩展(Ctrl+Shift+X)中搜索Remote。
image.png
安装

Remote - SSH

Remote Explorer


image.png

连接SSH

安装完成后找到远程资源管理器
image.png
选择远程
image.png
连接SSH可通过点击在配置文件中添加配置新建连接两种方式。

方式1 配置文件中添加配置

image.png
选择配置文件路径。
image.png

此处显示的

C:\ProgramData\ssh\ssh_config

路径是全局路径,主机上登录的所有用户可使用此配置路径。其余路径为用户路径

在配置文件中添加配置。

Host 192.168.37.129
  HostName 192.168.37.129
  User user0

image.png
保存后刷新,打开添加的连接。
image.png
如果使用用户名+密码认证,此处输入虚拟机用户登录密码。密钥对认证跳过此步。
image.png
查看显示已连接。
image.png

方式2 新建连接

点击新建远程
image.png
输入ssh连接命令,Enter。

ssh user0@192.168.37.129

image.png
选择配置保存路径。
image.png
配置已添加。
image.png
保存后刷新,打开添加的连接。
image.png
使用用户名+密码认证,输入虚拟机用户登录密码。密钥对认证跳过此步。
image.png
查看显示已连接。
image.png

添加工作区目录

打开虚拟机目录。
image.png
选择工作区目录。
image.png
点击是。
image.png
资源管理器中,虚拟机中的目录已被打开。
image.png
VS Code 连接虚拟机中的工作区配置完成。


参考

vmware虚拟机NAT模式、桥模式、主机模式原理与区别_vmware nat模式-CSDN博客
OpenSSH for Windows 中基于密钥的身份验证 | Microsoft Learn

标签: linux ssh ubuntu

本文转载自: https://blog.csdn.net/qq_45223683/article/details/141140237
版权归原作者 _integer 所有, 如有侵权,请联系我们删除。

“【环境配置】【保姆级教程】VSCode SSH 连接 VMware虚拟机Linux Ubuntu 22.04 配置”的评论:

还没有评论