背景
最近又要处理统信的适配,现在的场景就是把代码放到实体机上进行编译,每次都得来回跑。。。
最近捣鼓了一下新方式进行处理,使用vscode作为代码编辑通过ssh链接linux机器,然后运行软件用x11的形式回显,这样就能在自己的机器上完美的远程编译与测试。x server在windows上的显示建议用VcXsrv,因为Xming这个东西对GLX支持的不怎么好,运行glxgears会黑屏。
环境
- 一台被远程的Linux机器,并且开启ssh服务
- 编辑器软件:vscode
- XServer服务: VcXsrv 或者是 Xming(还需要安装Xming-fronts才能运行)
安装步骤
ssh免密登录
在windows中按下win+R快捷键进入cmd命令框中运行命令ssh-keygen
会在C:\Users\Administrator\.ssh
文件夹下生成了两个文件
id_rsa.pub # 公钥
id_rsa # 私钥
登录服务器,在用户的.ssh目录下生成authorized_keys,该文件包含一系列允许登录该服务器的公钥,没有就新建该文件。将公钥内容追加到~/.ssh/authorized_keys
中
echo "公钥内容" >> ~/.ssh/authorized_keys
并在配置文件C:\Users\Administrator\.ssh\config
中的对应主机下添加如下内容:
IdentityFile "C:\Users\Administrator\.ssh\id_rsa"//设置私钥路径
vscode 安装插件
本地安装【Remote - SSH】插件。
ssh连接服务器安装【Remote X11】和【Remote X11 (ssh)】两个插件。
配置
并在配置文件C:\Users\Administrator\.ssh\config
中的对应主机下添加如下内容:
ForwardX11 yes
ForwardX11Trusted yes
ForwardAgent yes
本地安装X11服务
下载完VcXsrv直接安装就行,一路下一步。
安装完之后点击XLaunch.exe启动,会弹出一个配置界面。
选中Multiple windows后填写视窗ID,这里填的是0(根据自己的情况而定)下一步
选择程序启动方式,默认就行,下一步。
这里将禁用访问控制的配置项勾上,然后下一步,再就是完成,会在右下角留下X的图标,等待客户端的连接。
putty的X11显示程序
配置在Connection->SSH->X11里,这里勾选Enable X11 forwaring,X display Location这个填localhost:11.0,默认转发到本地是localhost:0.0(啥也不填的情况)(会自动设置服务器的DISPLAY值),如果想修改其他端口也可以。
配置好后连接远程linux服务器。
注:这里需要注意一下,linux的端口是putty自动设置的,会将linux设置的端口转发成本地设置端口,所以XServer的端口应与putty内设置的端口一致。
测试一下:
ciomp@ciomp-PC:~$ echo $DISPLAY
localhost:10.0
ciomp@ciomp-PC:~$ xclock
Warning: Missing charsets in String to FontSet conversion
显示效果如下:
vscode的X11显示程序
remote x11插件配置display端口为11(根据本地XServer开启的端口一致),其他默认即可,如下:
打开一个测试程序,配置好launch.json文件直接F5运行,效果如下
直接在vscode终端执行测试如下:
直接在vscode终端执行测试2如下:
如果配置正确,但是连接出现错误的话(比如连了一宿)可以ctrl+shift+p调出命令输入框执行Remote X11: Reconnect Display
VSCode Server 下载时间过长问题
正常通过ssh连接的时候vscode会让远程机器下载VSCode Server,如果未联网或者下载慢请按如下操作:
打开VScode的帮助-关于(help-about)模块,出现Version,Commit,Data,Electron等信息,其中最关键的是Commit后面的字符串,被称为Commit ID,其是由40位十六进制字符串,利用Commit ID下载VScode Server,文件为vscode-server-linux-x64.tar.gz,下载链接有两个
https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
https://vscode.download.prss.microsoft.com/dbazure/download/stable/${commit_id}/vscode-server-linux-x64.tar.gz
注意把:${commit_id}替换成对应的Commit ID
下载后将vscode-server-linux解压到连接用户的目录下的.vscode-server/bin/${commit_id}
下,具体操作如下:
# 1 在/home/usr/下新建文件夹.vscode-server/bin/${commit_id}
mkdir -p ~/.vscode-server/bin/${commit_id}
# 2 将vscode-server-linux-x64.tar.gz文件放置在${commit_id}目录下,并进入该文件夹
cd ~/.vscode-server/bin/${commit_id}
# 3 解压文件vscode-server-linux-x64.tar.gz
tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
# 4 删除多余文件vscode-server-linux-x64.tar.gz
rm vscode-server-linux-x64.tar.gz
# 5 重启VScode,在安装完成Remote-ssh后,可通过ssh连接远程服务器,此时会生成data,extensions文件夹,可以连接成功,表明VScode-Server安装成功。
叼茂SEO.bfbikes.com
想想你的文章写的特别好https://www.ea55.com/