本文正在参与 “走过Linux 三十年”话题征文活动
1. VScode配置免密登录服务器
1.1 VScode配置远程登录
VScode如需远程登录,需要下载安装插件Remote Development插件,这个安装完成好,一般VScode会自动安装几个相应插件,截图如下
然后我们就开始配置VScode登录服务器了,过程非常简单。上文所说插件安装完成后,VScode左下角会出现一个由大于号小于号组成的图标,点击图标会出现一个窗口。我们只需要关注Remote-SSH这部分,第一个选项会另开一个窗口连接服务器,第二个是当前窗口连接服务器,第三个会打开你的SSH配置文件,按照自己的需求点击即可
点击第一个第二个,会出现你的SSH配置窗口,下面出现的ip是你已经配置过的Remote-SSH连接。你需要添加新的服务器远程登录,就点击Add New SSH Host,Configure SSH Hosts还是打开你的SSH配置文件
接下来就是简单的SSH远程登录了,VScode也给出了相应的提示。如ssh root@192.168.34.18,root是你需要登录用户名(不一定是root,举个例子),@后面是你要连接的服务器IP地址,输入完成直接enter
就进入你将SSH远程登录配置写进自己主机ssh配置文件的环节,直接无脑第一项
VScode右下角会出现Host added,点击connet
让你输入你在服务器对应用户的密码。之后所有都配置好了,只需要等待VScode连接远程服务器了,第一次登录配置时间会长很多,不要着急,之后登录就很快了。
登录成功后,一切就都很简单啦,可以如VScode提示的那样打开文件夹,方便操作。以上,就是VScode远程登录服务的内容
1.2 VScode配置免密登录
如果VScode没有配置免密登录服务器,还是蛮麻烦的,无论是重新登录,还是进入新文件夹都需要输入密码。而这个免密登录配置过程也非常简单,一共分为三步
1.2.1 服务器上生成秘钥对
输入 ssh-keygen,然后无脑回车就行,之前我配这个秘钥对的时候参照的教程生成命令 ssh-key后面跟了很多参数,时间久了,后面参数啥意思俺也搞忘记了,也忘了有啥多余作用,反正ssh-keygen对付一般操作够用了
之后你的服务器/home/你的用户名/ 下会出现.ssh文件夹,如果是root用户会出现在/root下面。id_rsa是生成的私钥,id_rsa.pub是公钥
1.2.2 自己使用的主机上生成秘钥对
方法跟服务器上的一样,打开cmd,输入 ssh-keygen,然后无脑回车,主机生成公私钥就不截图了,生成的公钥配置到了好几台服务器,之后还要在几台服务器改就很麻烦。图片跟服务器那张差不多,主机就会生成公私钥,其SSH配置文件在系统盘>用户>用户名下,主要有四个文件,id_rsa是生成的私钥,id_rsa.pub是公钥,config是配置VScode远程登录生成的配置文件,known_hosts记录远程免密登录的服务器的公钥
有关known_hosts的一些知识
1.2.3 将主机的公钥复制到远程服务器上
在服务器的ssh配置文件夹下,生成一个authorized_keys文件,然后将主机的公钥复制到这个文件里,即可完成VScode远程免密登录
2.VScode配置X11转发显示GUI窗口
我刚用VScode远程连接服务器跑代码的时候,一直出现该弹出绘图窗口的时候没反应,之后查了查发现VScode还需要配置X11转发。这个X11的配置,是我配置环境时踩过最深的坑,这个VScode X11配置的博客不多,而且还特多坑,我和我同学都踩过,有些要你改localhost,有些又叫你该Xserver软件端口,有些更是要你在VScode该些奇奇怪怪的配置。按照这些博客,走了不少弯路,断断续续我搞了一周才搞通,其实弄通之后发现很简单VScode配置X11转发必须配置好免密登录
2.1 VScode安装相应的X11插件
在扩展市场上,搜索Remote X11,我们需要安装两个插件,一个安装在本地VScode上,一个安装在服务器上
免密登录和插件安装好后,我们打开终端,在终端窗口点击输出,并把右方下拉框调节到Remote X11和Remote X11(SSH),可以查看到如下结果,都正确显示了DISPLAY值
如果这一环节出现了异常,发生了以下结果
那就是因为服务器配置里没有允许X11转发图中软件为MobaXterm,墙裂推荐,功能类似于Xshell,但功能更强大,也更人性化,可以查看文件,还自带Xserver,基于此点,这个软件在运行的时候,我们不需要再下载下文说的Xming软件
此问题出现,解决办法如下,打开服务器文件/etc/ssh/sshd_config进行修改,命令如下 sudo vim /etc/ssh/sshd_config,也可以直接用编译器打开修改,修改如下 X11Forwarding yes
2.2 下载Xserver软件配合使用
我主要使用的是Xming(链接),直接下载运行即可,不需要像其他博客说的那样配置其他东西,运行时右下角会出现小图标
然后打开VScode终端,输入测试命令xclock,出现小时钟表明配置成功啦
如果不成功,输入命令echo $DISPLAY,查看DISPLAY值。这个DISPLAY值需要Remote X11和Remote X11(SSH)显示的一致才行(我上文便是localhost:11.0)
如果不一致,使用命令export DISPLAY=”localhost:11.0″,DISPLAY值需Remote X11和Remote X11(SSH)显示的一致不需要修改其他东西,重新使用xclock测试即可