虽然说VIM它被称为编辑之神,但毕竟是古代的产物,对已经适应现代发展环境的朋友不是很友好。最近因为疫情,exam也转到了网上。看着光滑的油光。Esc键,我突发奇想:VSCode如此强大,你能使用跳板机进行远程开发吗?折腾终于在早上折腾,效果也是杠杆。所以我写了这个教程,希望能有所帮助~
期望效果:
前置条件:假设你用过VSCode,或者了解VSCode基本功能。
Part 1 安装在本机上openSSH
作为管理员运行Powershell(Win X,输入以下命令:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
如果返回:
Name : OpenSSH.Client~~~~0.0.1.0 State : NotPresent
说明没有安装SSH客户端。此时需执行以下命令:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
成功安装后返回:
Path : Online : True RestartNeeded : False
Part 2 在本机VSCode上进行设置
没有使用过SSH学生可能不理解公钥和私钥的概念,也没有私钥文件。打开你的电脑C:\Users\用户名\,设置Windows如果没有看到隐藏的文件和文件夹来显示,.ssh文件夹或.ssh没有文件夹id_rsa和id_rsa.pub,就可以使用ssh-keygen命令在(若无则新建)生成密钥对,然后在lab.os.buaa.edu.cn在个人信息中找到SSH公钥设置,将id_rsa.pub复制文件中的内容SSH提交公钥栏。请勿移动私钥文件。
然后打开VSCode,安装Remote - SSH点击侧边栏插件Remote - SSH标志,进入远程资源管理器,然后单击SSH TARGET打开用户配置文件(如下图所示),标签右侧的齿轮图标。
为了填写配置文件,我按照网上常用的方法创建了两个Host然后跳跃,但总是因为各种问题而失败。最后,我在互联网的角落里找到了一个简单的方法,并使用它JumpServer远程客户机录远程客户机的特点:填写如下,其中目标机IP可以在lab.os.buaa.edu.cn在我的资产网站上找到。
Host lab.os.buaa.edu.cn HostName lab.os.buaa.edu.cn User 学号@git@目标机IP Port 2222
此时,VSCode就可以在SSH TARGET远程服务器中间连接!……
Part 3 目标机的VSCode设置
但是……由于目标机无法连接外部网络,它将卡住Setting up SSH Host XXX:Copying VS Code Server to host with scp。请注意,如果没有这样的提示,这意味着其他链接有问题,你可以根据终端错误信息百度。若用,我们应该知道VSCode进行远程开发,除了本机应该装一个VSCode,应安装一台目标机VSCode-Server,通信作为服务器。但由于上述原因,在远程VSCode-Server安装时卡住了。
不要惊慌,我们先默默关闭VSCode,然后把Server在目标机上安装手动地!(下面的参考博客)应该怎么做?我们来到目标机Shell。使用用户文件夹ll列出所有文件的命令,我们可以看到另一个.vscode-server隐藏文件夹。打开~/.vscode-server/bin,我们在bin文件夹中发现了一个有着很长名字的文件夹(举个例子,我的是da15b6fd3ef856477bf6f4fb29ba1b7af717770d这就是server记住这个名字并使用二进制文件所在的地方rm删掉(保留文件夹)。
下面,在我们自己的电脑上打开以下链接,下载安装文件(.tar.gz格式):
https://update.code.visualstudio.com/commit:那个长名字/server-linux-x64/stable
现在我们需要将文件传输到目标机,但我正在使用它scp当命令出现各种奇怪的问题时,我们不得不放弃这种方法。但我们有一个很好的方法:GitLab!登录git.os.buaa.edu.cn,新分支,上传文件,commit,到Shell中pull下来就行了。大家都会Git,过程不再重复。
下面下载vscode-server-linux-x64.tar.gz解压到名字很长的文件夹中,,请注意目录结构:
-.vscode-server --bin ---da15b6fd3ef856477bf6f4fb29ba1b7af717770d ----LICENSE ----bin ----extensions ----... --data --extensions
此时可再次运行VSCode连接目标机!如果失败可能是权限问题,请使用它chmod调整一下。
Part 4 VSCode C/C 安装远程扩展
此时,VSCode代码编辑、提交等操作已经可以进行了。但是本机安装了C/C 由于远程开发需要在服务器端安装扩展,因此不能使用扩展。没有拓展的VSCode是没有灵魂的,这意味着代码自动补全,代码格式化,悬停提示等实用功能均不可用。我们还需要手动安装插件,因为目标机无法连接外部网络,但这个过程比上面容易得多。
打开VScode Marketplace的C/C 拓展链接:C/C - Visual Studio Marketplace
点击右栏中的Download Extension,下载Linux x64版本的插件。.vsix前面提到的文件GitLab大法上传到目标机,然后在自己的电脑上VSCode打开左侧的扩展按钮,点击扩展栏上的省略号,选择从VSIX可安装安装。
至此,全部过程就结束了,可以在设置里进行个性化的调整。