背景
Windows10/11 已安装 VMWare,虚拟机为 Ubuntu(18.04/20.04),使用 VSCode Remote 远程开发。
获取虚拟机 IP 地址
1 | ifconfig |
返回:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.164.130 netmask 255.255.255.0 broadcast 192.168.164.255
inet6 fe80::526c:c8e0:32fd:f58d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:9d:3b:36 txqueuelen 1000 (Ethernet)
RX packets 1686384 bytes 1816940667 (1.8 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1825375 bytes 467308399 (467.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 50513327 bytes 5827766684 (5.8 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 50513327 bytes 5827766684 (5.8 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
其中第二行的 inet 即为 ip 地址。若未出现 ens33,参照 🔗。
Powershell 远程登录
打开 Powershell,使用:1
2# format: ssh username@host
ssh xander@192.168.164.130
输入 ubuntu 密码即可登录。这样每次打开一个终端都需要输入密码,显然较为麻烦。
我们可以使用公钥进行免密码登录。首先在 win 中生成密钥对:1
ssh-keygen
一路回车即可。生成的密钥文件将存储于C:\Users\username\.ssh
中。其中id_rsa
和id_rea.pub
分别为私钥和公钥,将后者移动到虚拟机的~/.ssh
中,并使用以下命令重命名和重启 ssh 服务:1
2cat ./id_rsa.pub >> ~/.ssh/authorized_keys
systemctl restart sshd.service
如果第二个命令报错,一般是未安装 openssh,自己 google 一下吧。
VSCode 配置
首先安装 Remote - SSH 插件。
点击齿轮按钮,进入配置文件:
配置文件代码如下:1
2
3
4
5
6
7
8Host VMWare-Ubuntu20.04 # 自拟虚拟机名称
HostName 192.168.164.128 # IP 地址
# 下面三个用于 xming,不用管
ForwardX11 yes
ForwardX11Trusted yes
ForwardAgent yes
User xander # ubuntu 用户名
IdentityFile "C:\Users\username\.ssh\id_rsa" # 私钥地址
打开命令面板,输入 Remote-SSH: Settings。勾选如下选项:
接下来就可以连接虚拟机啦!