VSCode Remote + VMWare Ubuntu

1,345 阅读1分钟

背景

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_rsaid_rea.pub分别为私钥和公钥,将后者移动到虚拟机的~/.ssh中,并使用以下命令重命名和重启ssh服务:

$ cat ./id_rsa.pub >> ~/.ssh/authorized_keys
$ systemctl restart sshd.service

如果第二个命令报错,一般是未安装ssh,自己google一下吧。

3. VSCode配置

首先安装Remote - SSH插件。 点击齿轮按钮,进入配置文件:

image.png

image.png

配置文件代码如下:

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。勾选如下选项:

image.png

接下来就可以连接虚拟机啦!

参考资料

zhihu