前言
在虚拟机中使用VSCode编程时时常卡死,查阅资料后发现有许多人遇到此问题,原因可能是VSCode的默认GPU加速问题,需要修改配置文件关闭。由于我在宿主机使用VSCode不卡顿,遂考虑将前端放置宿主机开发,但又会产生宿主机与虚拟机中项目文件不一致,需要时常来回拷贝覆盖的问题,突然看到有使用SSH实现VSCode远端互联的方法,恰好可以解决我的问题,特此记录。
环境
- Windows 11 专业版
- VMware 17 pro
- Ubuntu 22.04.2
- VSCode 1.85.1
配置
口令登录
服务端
- 在Ubuntu上安装SSH服务器。打开终端,并依次运行以下命令来安装OpenSSH服务器,并启动SSH服务器:
|
|
客户端
- 打开Windows上的VS Code,安装“Remote - SSH”扩展。
- 打开VSCode侧边栏的远程资源管理器,右键SSH,选择配置SSH文件
- 在文件中输入远端的IP和用户名,再定义该连接的名称即可
在该配置文件中可以配置多个Linux服务器信息
- 重新打开VSCode侧边栏的远程资源管理器即可,连接成功后,VS Code会打开一个新的窗口,显示Ubuntu上的文件系统(可以使用“文件”>“打开文件夹”浏览和打开远端目录中的文件夹)
Windows环境中需要提前安装有OpenSSH
- 在宿主机VSCode中修改文件后,打开虚拟机可以看到对应文件也同步修改成功。
注意两端的插件是不互通的,需要按照需要自己下载安装
- 打开终端也可以看到是远端的终端
如果要结束 SSH 连接,可以使用“文件”>“关闭远程连接”返回到在本地运行 VS Code。
免密登录
客户端
- 生成公私钥对
|
|
- 将公钥复制到远程主机的
~/.ssh/authorized_key
文件中
|
|
win系统中需要在powershell下先执行,注意下面的
wireguard.pub
要用第一步自己写的文件名
1 2 3 4 5 6 7 8 9
function ssh-copy-id([string]$userAtMachine, $args){ $publicKey = "$ENV:USERPROFILE" + "\.ssh\wireguard.pub" if (!(Test-Path "$publicKey")){ Write-Error "ERROR: failed to open ID file '$publicKey': No such file" } else { & cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1" } }
- 配置
~/.ssh/config
文件,
|
|
PreferredAuthentications
:权限认证(publickey、password publickey、keyboard-interactive),一般直接设为publickey
IdentityFile
:私钥文件地址
现在就可以在VS Code中编写、保存和运行Ubuntu环境中的代码啦🎉
也可以在win环境的powershell中直接用ssh 用户名@Host
连接
参考