背景
Windows10/11已安装VMWare,虚拟机为Ubuntu(18.04/20.04),使用VSCode Remote远程开发。
1. 获取虚拟机IP地址
$ ifconfig
返回:
ens33: 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,参照🔗
2. Powershell远程登录
打开Powershell,使用:
$ # format: ssh username@host
$ ssh xander@192.168.164.130
输入ubuntu密码即可登录。这样每次打开一个终端都需要输入密码,显然较为麻烦。
我们可以使用公钥进行免密码登录。首先在win中生成密钥对:
$ ssh-keygen
一路回车即可。生成的密钥文件将存储于C:\Users\username\.ssh中。其中id_rsa和id_rea.pub分别为私钥和公钥,将后者移动到虚拟机的~/.ssh中,并使用以下命令重命名和重启ssh服务:
$ cat ./id_rsa.pub >> ~/.ssh/authorized_keys
$ systemctl restart sshd.service
如果第二个命令报错,一般是未安装ssh,自己google一下吧。
3. VSCode配置
首先安装Remote - SSH插件。 点击齿轮按钮,进入配置文件:
配置文件代码如下:
Host 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。勾选如下选项:
接下来就可以连接虚拟机啦!