服务器X11图形界面转发配置——全网最简教程
Jan262022
- SDL安装
- ssh连接配置,x11forwarding
与VNC方式不同,qemu-kvm利用图形界面方式开启虚拟机,会以弹出窗口的方式与虚拟机交互。某些情况下,工作环境是通过各种term程序利用ssh登录到服务器,这时执行qemu的启动程序,通常会产生“Gtk-WARNING **: cannot open display”的错误。
造成这种情况的原因有很多,简单来说,服务器与本机环境之间要互相收发“图形界面”信息,两端要规定一种特殊的信息约定,用于编写和翻译图形界面信息,这就需要一个软件来完成这个特殊的编解码,此处一般为SDL,同时建立连接的程序还必须允许该软件在这个连接上可信。打个比方,两个国家间互相运输货物,货物必须经过拆解才能放上船,到达后根据双方约定可组装起来以供使用。同时,两国的海关需要允许货物出关和入关。此处,SDL即为双方的约定,ssh的安全机制为海关。
SDL是一个跨平台的多媒体图形声音界面库,开发者基于它开发上层图形界面程序,只需底层平台支持SDL库。简介:http://zh.wikipedia.org/wiki/SDL。项目主页:http://www.libsdl.org/。
针对以上的几个主要环节,任何一个环节出现问题,都会出现标题所示的提示信息。所以,采取各个击破的解决办法:
首先,服务端需要安装:
sudo apt-get install openssh-server
- SDL安装问题,开发机与本机环境必须都支持SDL,在两台机器上正确安装或更新SDL程序
- ssh开启X11Forwarding: 服务端更改文件“/etc/ssh/sshd_config”里的“X11Forwarding ”为“yes”,并添加“X11UseLocalhost no”:
- 本机客户端为一些桌面终端程序如Xshell,客户端需要安装xmanager.需要在ssh连接设置里面勾选X11forwarding选项:
- Mac系统需要安装X桌面X11-XQuartz(https://xquartz.macosforge.org/trac/wiki),在包括linux的使用X11的平台上,SDL基于Xlib而编写。某些时候需要保持ssh连接,所以在建立ssh连接时添加-Y选项或修改客户端/etc/ssh/ssh_config的ForwardX11Trusted yes,添加信任项。
至此,我的几种本机与服务器情况基于以上步骤都解决了。
————————————————