Vs code连接虚拟机
有同学在问如何通过Windows
中的VS Code
连接VMware
虚拟机中的Ubuntu
。要实现这点,要通过SSH连接。
这里分享一下我的安装配置经验。如有谬误,敬请指正。
一、Ubuntu设置
一) 设置固定IP地址
一般地,虚拟机中Ubuntu
的IP
地址是通过DHCP
方式动态分配的,因此每次启动后地址可能不一样。为此,必须为虚拟机设置一个固定的IP地址。
-
点击
Ubuntu
桌面右上角的网络图标,在下拉菜单中选择设置
或者Settings
。 -
在弹出的窗口中,在左侧栏顶部选择
网络
或者Network
。出现的窗口类似于: -
点击Wired项目中右侧的齿轮,进入设置页面:
请记住这个页面中的Default Route和DNS。
- 点击IPv4选项卡,在其中选择Manual,然后:
- 在Addresses中输入你想要的IP地址、子网掩码和网关地址。这里的网关地址输入刚才记下来的Default Route的地址。
- 在DNS中,关闭Automatic,输入刚才记下来的DNS的地址。
- 点击右上角的Apply以生效。
- 在
Ubuntu
终端中,发出如下命令重启系统:reboot
- 重启后,如果桌面右上角的网络图标上显示
?
,则说明网络不通。请检查前面的步骤是否操作正确。
二) 启动SSH服务
在终端中发出如下命令:
sudo service ssh start
如果提示命令不存在,则先安装它:
sudo apt install openssh-server
安装好后启动服务。
二、 Windows设置
一) 为SSH连接做准备
-
生成ssh key
打开
Powershell
,发出如下命令:ssh -V
如果显示出版本信息,说明你的
Windows
系统已经安装了ssh
客户端。此时可以运行ssh-keygen
命令。如果没有,那么请用管理员身份启动
Powershell
,用如下命令安装:Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
再发出如下命令:
cd ~/.ssh ssh-keygen -t rsa -C "your-email"
your-email是你常用的邮箱地址。
此命令会提示你,生成的ssh key存放到哪个文件中。可以直接回车,选择默认文件名
rsa_id
,或者输入你想要的文件名。例如,我输入了ubuntu
。此后都以我的操作为例。
此后的提问一路回车就可以了。
完成后,
~/.ssh
目录中会生成两个文件:ubuntu
:私钥文件ubuntu.pub
:公钥文件
-
创建config文件
打开
VS Code
,新建文件,在其中输入:Host ubuntu HostName 192.168.184.129 User bzj IdentityFile ~/.ssh/ubuntu
Host
:任意你想要的名字HostName
:刚为Ubuntu
设置的固定IPUser
:你登录Ubuntu
的账号IdentityFile
:刚生成的ssh key
的私钥文件名ubuntu
将文件保存到
~/.ssh
目录中,并命名为config
。 -
复制公钥文件到
Ubuntu
以实现免密登录- 进入
Ubuntu
桌面,双击Home
图标,点击菜单栏上的三条横线图标,勾选Show Hidden Files,此后你会在文件夹里看到.ssh
目录。双击打开它。 -
在
Windows
中,打开C:\用户\<登录名>\.ssh
文件夹,将ubuntu.pub
文件复制粘贴到Ubuntu
的.ssh
目录中,并将其重命名为:authorized_keys
。<登录名>是你的Windows登录账号名。 登录名>
- 在
Ubuntu
终端中,发出如下命令:cd ~/.ssh chmod 644 authorized_keys
- 进入
二) 测试SSH连接
在Powershell
终端中,输入:
ssh -T ubuntu
如果操作无误,那么就可以看到类似于如下信息:
Welcome to Ubuntu 21.10 (GNU/Linux 5.13.0-30-generic x86_64)
//some information
0 updates can be applied immediately.
此时,光标在闪动。这说明已经远程进入了Ubunut
系统。试试如下命令:
ls -l
你应该会看到你的Ubuntu
登录账号下的目录列表。
输入:
exit
将退出连接。
三、用Code连接虚拟机中的Ubuntu
- 打开
VS Code
,点击远程连接图标,在REMOTE EXPLOERER的列表中,选择SSH Targets。 - 此后,下方列表将会出现
config
文件中的配置项:ubuntu
。 - 点击
ubuntu
,根据系统的提示连接上虚拟机中的某个目录。
你可能需要先在虚拟机中创建要连接的目录。