公司使用的VDI桌面无法联网,并且因为需要配合mobexterm中的Linux系统,因此不能使用高版本的vscode应用,只能使用原本系统已经安装好的旧版本vscode。
连接过程如下:
离线安装remote-ssh插件
主要使用其中两个插件:
- remote-ssh
- remote explorer
由于vscode使用的是旧版,因此这两个插件也是用的是旧版(不能使用新版本!)可去现有服务器中拷贝别人的vscode文件夹,其中包含旧版本vscode安装包以及插件。
可选的插件安装方法是,将这个文件夹拖拽到VDI本地Windows桌面,在桌面中的vscode打开插件,利用VSIX的方式安装插件。之后就可以成功安装插件。
安装之后,vscode界面左侧就会出现一个小电脑标志,点开它,再选择ssh连接,点击➕号,在弹出的界面中输入要连接的IP地址,例如我这里链接我的地址:
ssh Martin.Ma@✕✕.✕✕.✕✕.✕✕✕
实测中,名字的大小写还是要区分的,我这里是
Martin.Ma
,一开始写martin.ma
就不行。.vscode-server文件夹配置
在正常的联网环境中,下载的ssh插件会自动在远程IP中配置好.vscode-server文件夹环境,但由于现在是断网的,所以这一步我们得自己配置。
默认情况下这个文件夹是没有的,即使有,一般的
ls
命令也无法显示,需要使用la
命令才能显示。并且初始状态下这个.vscode-server文件夹下面也是什么都没有,我们需要手动创建一个bin文件夹。mkdir -p ~/.vscode-server/bin/
下面,来到关键一步:
我们需要再打开vscode中的 帮助 - 关于 ,找到“提交(commit)”,复制下来
然后替换下面的网址中的
{COMMIT_ID}
:例如我这里就是:
我们在有网的环境中把上面的网址复制到浏览器,此时会自动下载一个压缩文件,解压这个压缩文件夹,它应该是下面的样子:
我们直接把这个文件夹整个一起复制到VDI中,然后重新修改文件夹名称,改为刚才的commit-id:
改完之后,我们直接再把这整个文件夹拖拽复制到刚才新创建的.vscode-server/bin文件夹下面:
在vscode中登录ssh连接
刚才的步骤完成,核心工作已经做完,我们返回vscode的界面,在小电脑的插件中选择ssh连接,在当前窗口还是新建窗口都行。
点击一下,会提示你选择何种系统方式登录:
我这里选择Linux系统登录方式。
之后就会在终端中提示你输入密码,输入你IP地址密码之后,如果一切顺利,就可以成功连接到远程IP了!
但如果不顺利,你可能会在这步提示报错,显示无法连接远程桌面的弹窗,不要急,我们可以返回mobexterm中查看日志,看是哪里出了错。
如果vscode插件版本正确,此时再回到mobexterm中我们会发现.vscoder-server文件夹下面多出了很多东西:
其中就有每次运行的日志文件,我们在命令行输入
cat .695af097c7bd098fbf017ce3ac85e09bbc5dda06.log
就可以查看为什么连接失败。
例如,我这里遇到两次错误:
- 第一个是code-server文件夹没有执行权限。
- 第二个是node文件没有执行权限。
因此我依次为其添加执行权限:
chmod +x /home/Martin.Ma/.vscode-server/bin/695af097c7bd098fbf017ce3ac85e09bbc5dda06/bin/code-server
chmod +x /home/Martin.Ma/.vscode-server/bin/695af097c7bd098fbf017ce3ac85e09bbc5dda06/node
通过这两步,成功解决了连接ssh的最后一道坎,最后再次回到vscode进行连接,成功!