赞
踩
目录
最近换了台新电脑,想着上一下以前在阿里云买的服务器里配置的code-server刷一下题,才发现以前的服务器已经过期销掉了,然后又重新买了台又便宜又简单的服务器,准备再配置一下code-server,但最新版的code-server怎么弄总有一些问题(总感觉cdr越优化越回去了...),但买的服务器不用又总觉得亏了,正当准备放弃的时候,看到了vscode里插件市场里的remoteSSH插件,于是试了一下,感觉还是相当不错的,这里记录一下使用的过程和一些踩过的坑。
vscode的remotessh插件通过ssh连接远程服务器进行开发(当然或许本地的什么虚拟机之类的也可以),所以得首先有一台开放了ssh服务的服务器,阿里云、腾讯云之类的平台上倒是经常有活动优惠什么的,我这个服务器是在阿里云上买的,配置简陋了点,不过考虑到价格以及实际需求来说就还算可以。
一定要保证服务器上开放了ssh服务,并且从本地可以ssh连接到远程服务器上,这里有两种设置,一种是直接输入密码进行连接,另一种是通过配置本地和服务器的sshkey进行免密连接,一般而言更推荐第二种(当然第一种也不是不行,我自己就这么做的),vscode的remotessh插件上也是更推荐这一种,这种方式网上有很多教程了,这里就不再赘述。
在vscode上找到RemoteSSH这个插件(主题是 Eva Light)
安装它。
之后vsc的侧边工具栏会多出一个图标
点击这个图标上方的一排工具栏中的齿轮按钮进行配置
选择 C:/Users/[user name]/.ssh/config 文件进行配置
其中的几个参数:
Host:服务器名字,这是给你自己看的名字,想起什么起什么
HostName:这是服务器的ip或者已经绑定的域名
User:登陆时候所选择的用户
整个连接的过程类似于 ssh User@HostName 这样
配置完毕之后右边的面板会出现配置的服务器
然后直接进行连接即可,右键唤出菜单选择或者直接点击服务器右边的小按钮(鼠标移动到服务器项目上出现)什么的,这里有两个选择,可以新起一个vsc,在那个里面进行连接,或者就在当前操作的vsc窗口里面进行连接,这个连接会把当前所有的操作内容全部换走,可以当作打开了另一个工作区或者文件夹时候的情况。
连接的时候会提示你输入密码,或者如果你之前配置了本地和服务器之间的sshkey的话就不用输入,这部分可以参考上面在ssh部分所说的内容。
连接成功后默认是没有打开文件夹的,这里可以选择一个文件夹打开,当作自己常驻的工作区。
到这里基本上就大功告成了。
如果要断开连接的话,在左下角会有一个当前连接的服务器的按钮
点击之后唤出菜单,点击关闭远程连接即可。或者可以直接关闭窗口,那么下次再打开vsc的时候会自动连接到上次直接退出时候所连接的服务器。
在操作的过程中踩了一些坑,以及一些觉得需要注意的地方。
远程的服务器上是没有装vscode的,而vsc在其上又会有一些针对服务器环境的设置需要,所以在服务器上其实是会有vscode的远程设置的,我的服务器是Ubuntu的操作系统,设置在 ~/.vscode-server/ 这个文件夹下面,其中,bin文件夹放置的是连接信息(什么token之类,反正就是一些验证、缓存、ssh之类的东西,保证连接的),data放置的是远程服务器上的用户设置(这里的用户设置和传统意义上vscode的用户设置不太一样,后面再讲)extensions放置的是安装在远程服务器上的插件。
当连接到远程服务器上的时候,插件就会产生本地运行环境和远程运行环境的矛盾,一般而言vscode会自动给你处理好,和环境相关的都会放到远程上使用,比如python,java之类的插件。但在这之前还需要安装插件,安装插件的话是需要先安装到本地再安装到远程服务器上(事实上在连接服务器状态下安装插件的话会同时给你安装到本地和远程服务器并在远程服务器上启用),如果是要为服务器单独安装插件是不行的,服务器安装的插件只能从本地插件选择,这里猜想大概是因为服务器从网络上访问marketplace的问题(服务器无法访问外网,防止不受信任的连接等等,毕竟本地和服务器已经通过ssh连接了,那么这个连接至少是安全的)以及用户设置之类的。这里不太方便的就是有些插件所需的环境在本地没有而只在远程有的,又不想在本地开发的时候插件老弹出来提示你没有这没有那的,我的解决方法是安装插件后一律禁用,然后在需要的本地或远程工作区再启用,只在工作区启用。
本地的用户设置是能够影响到远程服务器上的设置的,也就是说服务器与本地都共享本地的用户设置,此外,在 ~/.vscode-server/data/Machine/ 下也同样有一个settings.json,一开始我以为这是服务器上的用户设置(这样远程服务器上的工作区的设置就会是 工作区设置>服务器用户设置>本地用户设置),vscode上leetcode插件中的工作区路径只能配置在用户设置中,而这个设置是无法配置在服务器的用户设置上的,也就是说服务器上的用户设置(~/.vscode-server/data/Machine/settings.json)仍然被认为是一种工作区设置,那么就会是 工作区设置>服务器工作区设置>本地用户设置 ,这里可以把服务器看作一个大的工作区,有自己的设置,然后在vscode里面打开的小工作区也有自己的设置。
有时候会出现ssh连接失败的情况,但是在命令行中的ssh连接仍然没问题,这里多半是因为 ~/.vscode-server/bin/ 文件夹里的缓存过期或者失效的缘故(比如vscode升级之后等等),把里面的内容全部清空然后重新连接就行了。
这里其实和本文没什么关系,但是由于是在做这段工作之间产生的,也就一并记在这里。在配置服务器和GitHub连接时候的sshkey的时候,一开始需要ssh-keygen命令产生key,有三个需要用户填写的部分:路径及名字,密码,确认密码。全部回车代表接受所有默认,我这里修改了名字,然后就陷入了好几天的痛苦之中,后来看了这篇文章 git 公钥权限问题Permission denied (publickey,keyboard-interactive)._chrycoder的博客-CSDN博客https://blog.csdn.net/chrycoder/article/details/80610842才解决。就是不要改名字,不知道什么地方会不对,key所有的设置都接受默认设置就行。
感觉这个插件功能用起来还是很方便的,vsc对于服务器的操作和code-server对服务器的操作都是差不多的,而两边的区别又在于,cdr能够随时随地只要有浏览器就能够进行代码开发,而vscode还需要上自己的vsc才行。而就设置、官方、稳定性等等而言,vsc的功能要方便一些,看具体的需求吧。此外,在Linux下进行开发比Windows上也要方便很多,比如说写java的时候只需要做两步,第一 apt install openjdk-11-jdk,第二,安装vsc上的Java开发插件,然后就可以开始愉快的编码了,这不能不说比Windows上要快和方便很多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。