不到断气不罢休 发表于 2024-8-26 04:53:15

【环境设置】【保姆级教程】VSCode SSH 毗连 VMware虚拟机Linux Ubuntu 22.

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

操作体系

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

网络环境

使用SSH建立VSCode与虚拟机的毗连需要设置网络环境。
VMware中虚拟机网络毗连提供了五个选项,分别是桥接模式、NAT模式、仅主机模式、自定义、LAN区段。VMware中虚拟机默认通过NAT毗连网络。
https://img-blog.csdnimg.cn/img_convert/c552d4e597253dc6593eafcf0e4c7cc2.png

NAT模式

NAT(Network Address Translation),是指网络地址转换,1994年提出的。NAT是用于在本地网络中使用私有地址,在毗连互联网时转而使用全局 IP 地址的技能。NAT实际上是为办理IPv4地址短缺而开辟的技能。
https://img-blog.csdnimg.cn/img_convert/7379e34c7f12c6519b6ec7433dbf66b7.jpeg
VMware在主机上通过应用步伐提供NAT服务。
https://img-blog.csdnimg.cn/img_convert/39c9df744bd9a6432b2f35da8dc60078.png
对应NAT模式图中的内容可以在网络适配器中找到Vmnet8虚拟网卡。
https://img-blog.csdnimg.cn/img_convert/6f639ad968b3a1ae0c8688ab01138c21.png
NAT模式服务设置在VMware中设置。
https://img-blog.csdnimg.cn/img_convert/fd6009149d1760b25f7e9ffa804561de.png
https://img-blog.csdnimg.cn/img_convert/42cd1c0619b404594ccdee12bc5036e6.png

NAT网络环境设置

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

查察NAT中的网络地址

设置主机和虚拟机网络需要:
   IP地址、子网掩码、网关IP。
DNS。
在虚拟网络编辑器中找到并点击NAT设置。
https://img-blog.csdnimg.cn/img_convert/295e41d1ac693a72626a2c9d1e60d562.png
子网掩码、网关IP。
https://img-blog.csdnimg.cn/img_convert/e7bab979c54cdd026ff912caf842f481.png
找到并点击DHCP设置。
https://img-blog.csdnimg.cn/img_convert/9d541c6f752647c911e08bbb9c980841.png
找到IP地址范围。
https://img-blog.csdnimg.cn/img_convert/c3fd701e2c34fb1c5657f37e9f821666.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——右键单击——属性。
https://img-blog.csdnimg.cn/img_convert/d0422d68ad9b1cd1c518b78519a0784c.png
找到Internet协议版本 4(TCP/IPv4),点击属性。
https://img-blog.csdnimg.cn/img_convert/200245778b33d46915a510b5281fa95b.png
设置IP地址、子网掩码、默认网关、DNS。
https://img-blog.csdnimg.cn/img_convert/dab7134ecae1f1bee06a309fb6e25395.png

虚拟机网络设置

虚拟机网络设置先容两种方式 :设置界面设置和修改设置文件。两种方式设置等效。

通过设置界面设置

打开设置。
https://img-blog.csdnimg.cn/img_convert/0a3755ae07f7344777b9316feaa536df.png
找到网络——有线——设置。
https://img-blog.csdnimg.cn/img_convert/723adde1b9d7f275c2b74736dc6a2660.png
点击IPv4。
https://img-blog.csdnimg.cn/img_convert/6b456c347a1b4ce78db5853eac0eb6dc.png
设置IPv4。
https://img-blog.csdnimg.cn/img_convert/dae24c0214c2fadceb4cd33da0a578d5.png
设置完成后重启网络设置。
https://img-blog.csdnimg.cn/img_convert/a1d499799907239bc6f64bca084f584e.png

通过设置文件设置

   设置文件目录 :/etc/netplan/
ls /etc/netplan/
# 01-network-manager-all.yaml
sudo vim /etc/netplan/01-network-manager-all.yaml
文件内容。
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: 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:
ens33为网络接口名称。
https://img-blog.csdnimg.cn/img_convert/ec3fc3be7d2b7abb0cbc068088833c52.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
https://img-blog.csdnimg.cn/img_convert/684a1b62a9a251f525e7dd13f8ec17f9.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 用于天生密钥文件,可以指定DSA、RSA、ECDSA 或 Ed25519 算法。 如果未指定算法,则使用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 @
The key's randomart image is:
+----+
|               |
|               |
|    .   o o      |
|.. o . + * o   |
|+ o o + S *   o|
|+. o   B o o + + |
|oo .o    .+ o +|
|Eo++.. .. .oo|
|**=ooo. . .o.    |
+---------+
在指定的路径天生了密钥对。
https://img-blog.csdnimg.cn/img_convert/3891856a48253d5ddceae0108fa36227.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
https://img-blog.csdnimg.cn/img_convert/0c4ca81efc4e2fba5b8391e948121529.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//.ssh/authorized_keys文件中。
在/home//.ssh/authorized_keys文件中添加主机中天生的.pubkey,并生存。
   vim /home//.ssh/authorized_keys
https://img-blog.csdnimg.cn/img_convert/f8ef245b696ffe5306e2b664e4fd4485.png

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

设置用户名+密码方式认证需修改SSH设置文件。
   sudo vim /etc/ssh/sshd_config
shd_config设置文件中的PasswordAuthentication是指通过SSH协议举行身份验证时是否答应使用密码认证。去掉PasswordAuthentication前面的#,生存文件。
https://img-blog.csdnimg.cn/img_convert/bc55079078e3cc37d1d46d9a3857a2a5.png

毗连SSH

从主机毗连虚拟机SSH。
在主机PowerShell中输入以下命令。
   ssh @
是Ubuntu用户名, 是Ubuntu服务器的IP地址。
   ssh user0@192.168.37.129

VS Code设置


添加扩展

在VS Code 扩展(Ctrl+Shift+X)中搜索Remote。
https://img-blog.csdnimg.cn/img_convert/01b4cf57c0217d2faaf3f49b7930301d.png
安装Remote - SSH 和Remote Explorer。
https://img-blog.csdnimg.cn/img_convert/29c8153492afc088bfdb7d0d2c2ba794.png

毗连SSH

安装完成后找到长途资源管理器。
https://img-blog.csdnimg.cn/img_convert/fbb6c15e2f4f264d13e1cab96654008a.png
选择长途。
https://img-blog.csdnimg.cn/img_convert/064b19c4a155dcfa36a953ee17eb9928.png
毗连SSH可通过点击在设置文件中添加设置或新建毗连两种方式。

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

https://img-blog.csdnimg.cn/img_convert/e9f47fb536a327075919182eb5dc8598.png
选择设置文件路径。
https://img-blog.csdnimg.cn/img_convert/6a2c26ce1d24ea8386db1de466943069.png
   此处表现的C:\ProgramData\ssh\ssh_config路径是全局路径,主机上登录的所有用户可使用此设置路径。其余路径为用户路径。
在设置文件中添加设置。
Host 192.168.37.129
HostName 192.168.37.129
User user0
https://img-blog.csdnimg.cn/img_convert/90ed945365fc07904c7d839d4a49a271.png
生存后革新,打开添加的毗连。
https://img-blog.csdnimg.cn/img_convert/77b4f637daf53da1ba4e856ebdc81edc.png
如果使用用户名+密码认证,此处输入虚拟机用户登录密码。密钥对认证跳过此步。
https://img-blog.csdnimg.cn/img_convert/808b4a4f123ad105d2d563929dc2f7ce.png
查察表现已毗连。
https://img-blog.csdnimg.cn/img_convert/b8015b61bbb268ca07cc3b41e7eba720.png

方式2 新建毗连

点击新建长途。
https://img-blog.csdnimg.cn/img_convert/c5dceca35a931d28ce4ec7586d164a24.png
输入ssh毗连命令,Enter。
   ssh user0@192.168.37.129
https://img-blog.csdnimg.cn/img_convert/38960e4ddb278073f8beb94ff9a2650f.png
选择设置生存路径。
https://img-blog.csdnimg.cn/img_convert/d1775a8713d78f4657c11bb357f7374c.png
设置已添加。
https://img-blog.csdnimg.cn/img_convert/2ba65a6d1646a6d25b894c213cff62da.png
生存后革新,打开添加的毗连。
https://img-blog.csdnimg.cn/img_convert/1136352060c1cd1228be9e03e2555d29.png
使用用户名+密码认证,输入虚拟机用户登录密码。密钥对认证跳过此步。
https://img-blog.csdnimg.cn/img_convert/cc7aa478b8bc8c7f0b1ef7039bb06b8c.png
查察表现已毗连。
https://img-blog.csdnimg.cn/img_convert/fea4c0a67ac205ad086353835ecde47d.png

添加工作区目录

打开虚拟机目录。
https://img-blog.csdnimg.cn/img_convert/0aca0fda04182e24ffb992dc8ef93040.png
选择工作区目录。
https://img-blog.csdnimg.cn/img_convert/5acd8c1e4c687d81130688cc73dd39b9.png
点击是。
https://img-blog.csdnimg.cn/img_convert/7d0bf3b17630bfc2a78672e98e4b8384.png
资源管理器中,虚拟机中的目录已被打开。
https://img-blog.csdnimg.cn/img_convert/d70c1652665627f302d99a41059a4c6d.png
VS Code 毗连虚拟机中的工作区设置完成。

参考

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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【环境设置】【保姆级教程】VSCode SSH 毗连 VMware虚拟机Linux Ubuntu 22.