网站开发语言排行榜,克隆网站怎么做,用js做的网站页面,无锡网站制作建设x11转发#xff1a;通过ssh远程使用GUI程序
我们常常使用ssh服务远程操控服务器#xff0c;大多数操作我们都可以通过命令行命令来实现。
ssh远程无法查看GUI程序
现在#xff0c;笔者在x11-test目录下放入一张图片test.jpg#xff0c;并通过opnencv-python写一个简单的…x11转发通过ssh远程使用GUI程序
我们常常使用ssh服务远程操控服务器大多数操作我们都可以通过命令行命令来实现。
ssh远程无法查看GUI程序
现在笔者在x11-test目录下放入一张图片test.jpg并通过opnencv-python写一个简单的脚本来在图形界面中显示图片。
# test.pyimport cv2img cv2.imread(test.jpg)
cv2.imshow(test, img)
cv2.waitKey(0)通常我们在自己本地的机器上运行该脚本时会正常显示一个窗口其中是我们的test.jpg图片。而在远程ssh操作服务器时我们只能在命令行中执行脚本并得到报错
(JJ_env) songdhu424:~/JJ_Projects/dsmAVA/x11-test$ python test.py
qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin xcb in /home/song/anaconda3/envs/JJ_env/lib/python3.8/site-packages/cv2/qt/plugins even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.Available platform plugins are: xcb, eglfs, minimal, minimalegl, offscreen, vnc.Aborted (core dumped)根据报错信息可以看到我们的程序脚本时没有问题的只是由于我们时远程ssh命令行连接无法显示图片。
x11转发
这时我们就需要通过x11转发来实现远程查看图形界面。我们分别介绍服务器端和客户端的设置其中服务器端默认为Linux而客户端则又分为Mac和Linux两种情况。
服务器端设置 修改服务器端的ssh设置 sudo vim /etc/ssh/sshd_config找到以下内容取消注释如果找不到的话直接在下面加上这几行即可 X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes服务器端修改完成后需要执行命令重启sshd服务 sudo systemctl restart sshd.serviceMac客户端 在Mac上使用x11转发需要下载Xquartz直接去官网下载dmg文件安装即可。 安装好之后可以直接打开终端连接远程服务器。 注意与普通的ssh连接不同要使用x11转发服务需要在连接时加上-X参数即 ssh -X song10.199.160.252然后我们进入x11-test目录运行test.py文件即可看到x11转发到本地的图形界面窗口 可以看到我们要展示的test.jpg图片成功转发到了我们的本地窗口。
Linux客户端 修改客户端的ssh设置 sudo vim /etc/ssh/ssh_config添加以下三行 ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes重启客户端的ssh服务 sudo systemctl restart ssh.service添加-X参数连接服务器 ssh -X song10.199.160.252后面就与Mac端进行类似的测试即可。
Ref
https://www.cnblogs.com/tsfh/p/9022170.html