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

打印 上一主题 下一主题

主题 871|帖子 871|积分 2613

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

操作体系

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

网络环境

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


NAT模式

NAT(Network Address Translation),是指网络地址转换,1994年提出的。NAT是用于在本地网络中使用私有地址,在毗连互联网时转而使用全局 IP 地址的技能。NAT实际上是为办理IPv4地址短缺而开辟的技能。

VMware在主机上通过应用步伐提供NAT服务。

对应NAT模式图中的内容可以在网络适配器中找到Vmnet8虚拟网卡。

NAT模式服务设置在VMware中设置。



NAT网络环境设置

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

查察NAT中的网络地址

设置主机和虚拟机网络需要:
   IP地址、子网掩码、网关IP。
DNS。
  在虚拟网络编辑器中找到并点击NAT设置

子网掩码网关IP

找到并点击DHCP设置

找到IP地址范围。

由以上操作找到了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——右键单击——属性

找到Internet协议版本 4(TCP/IPv4),点击属性

设置IP地址子网掩码默认网关DNS


虚拟机网络设置

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

通过设置界面设置

打开设置

找到网络——有线——设置

点击IPv4

设置IPv4。

设置完成后重启网络设置。


通过设置文件设置

   设置文件目录 :/etc/netplan/
  1. ls /etc/netplan/
  2. # 01-network-manager-all.yaml
  3. sudo vim /etc/netplan/01-network-manager-all.yaml
复制代码
文件内容。
  1. # Let NetworkManager manage all devices on this system
  2. network:
  3.   version: 2
  4.   renderer: NetworkManager
  5.   ethernets:
  6.     enps33:
  7.       dhcp4: no
  8.       addresses:
  9.         - 192.168.37.129/24
  10.       routes:
  11.         - to: 0.0.0.0/0
  12.           via: 192.168.37.2
  13.       nameservers:
  14.           addresses: [8.8.8.8]
复制代码
ens33为网络接口名称。

/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
  


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
  1. PS C:\Users\Administrator> ssh-keygen -t ed25519
  2. Generating public/private ed25519 key pair.
  3. Enter file in which to save the key (C:\Users\Administrator/.ssh/id_ed25519):  # 密钥对保存路径
  4. Enter passphrase (empty for no passphrase):                                # 输入密码,空表示不设置密码
  5. Enter same passphrase again:                                                                                        # 确认密码
  6. Your identification has been saved in C:\Users\Administrator/.ssh/id_ed25519
  7. Your public key has been saved in C:\Users\Administrator/.ssh/id_ed25519.pub
  8. The key fingerprint is:
  9. SHA256:pt/THqXdd7ACoW20Ay49UqsBLi2SqMyief3KaDv6KSY [username]@[LOCAL-HOSTNAME]
  10. The key's randomart image is:
  11. +--[ED25519 256]--+
  12. |                 |
  13. |                 |
  14. |    .   o o      |
  15. |.. o . + * o     |
  16. |+ o o + S *   o  |
  17. |+. o   B o o + + |
  18. |oo .  o    .+ o +|
  19. |Eo++.  . .. .o  o|
  20. |**=ooo. . .o.    |
  21. +----[SHA256]-----+
复制代码
在指定的路径天生了密钥对。

   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
  

   如果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文件中添加主机中天生的.pubkey,并生存。
   vim /home/[username]/.ssh/authorized_keys
  


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

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


毗连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。

安装Remote - SSH 和Remote Explorer。


毗连SSH

安装完成后找到长途资源管理器

选择长途

毗连SSH可通过点击在设置文件中添加设置新建毗连两种方式。

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


选择设置文件路径。

   此处表现的C:\ProgramData\ssh\ssh_config路径是全局路径,主机上登录的所有用户可使用此设置路径。其余路径为用户路径
  在设置文件中添加设置。
  1. Host 192.168.37.129
  2.   HostName 192.168.37.129
  3.   User user0
复制代码

生存后革新,打开添加的毗连。

如果使用用户名+密码认证,此处输入虚拟机用户登录密码。密钥对认证跳过此步。

查察表现已毗连。


方式2 新建毗连

点击新建长途

输入ssh毗连命令,Enter。
   ssh user0@192.168.37.129
  

选择设置生存路径。

设置已添加。

生存后革新,打开添加的毗连。

使用用户名+密码认证,输入虚拟机用户登录密码。密钥对认证跳过此步。

查察表现已毗连。


添加工作区目录

打开虚拟机目录。

选择工作区目录。

点击是。

资源管理器中,虚拟机中的目录已被打开。

VS Code 毗连虚拟机中的工作区设置完成。


参考

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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表