MobaXterm 中X11-forwarding问题
我的环境:
. host: win11. hypervisor: virtualbox. vm: centos8. terminal: mobaXterm在mobaXterm中新建ssh session,连贯vm,默认用户vagrant。
- 问题背景:
我须要利用xclip以便在tmux下cope-mode下拷贝的内容能够发送到host的clipboard,从而能够在host中的notepad++等编辑器中粘贴应用。 问题景象:
在我的mobaXterm ssh session中xclip、xeyes等不work,报错如下。┌────────────────────────────────────────────────────────────────────┐ │ • MobaXterm 20.6 • │ │ (SSH client, X-server and networking tools) │ │ │ │ ➤ SSH session to vagrant@192.168.xx.xx │ │ • SSH compression : ✔ │ │ • SSH-browser : ✔ │ │ • X11-forwarding : ✘ (disabled or not supported by server) │ │ • DISPLAY : 192.168.a.b:0.0 │ │ │ │ ➤ For more info, ctrl+click on help or visit our website │ └────────────────────────────────────────────────────────────────────┘[vagrant@dw1-cn ~]$ pwd[vagrant@dw1-cn ~]$ suPassword:[root@dw1-cn vagrant]# xclipError: Can't open display: (null)[root@dw1-cn vagrant]# xeyesError: Can't open display:
X11介绍:
X11指的是X协定的第11个版本,这个协定是Linux操作系统下图形用户界面(GUI)的规范。它是由X server和X client组成的,X server次要治理显示相干的硬件设置并负责屏幕画面的绘制与显示,以及将输出设置的动作告知X client,而X client次要负责事件的解决即程序的逻辑。X11-forwarding则是指通过反对X Server的SSH客户端,如MobaXterm,连贯到近程Linux服务器后,能够在本地通过MobaXterm运行操作一个近程Linux服务器上有图形界面的程序。简略来说,X11-forwarding就是将近程服务器上的图形界面操作和显示传递到本地,使得用户能够在本地看到并操作近程服务器上的图形界面。
- 问题起因:
而xclip、xeyes等是通过X11-forwarding来实现。而vm的centos零碎中短少了xauth,导致X11-forwarding无奈开启。
排查过程
查看sshd配置:
vi /etc/ssh/sshd_configX11Forwarding yes
重启sshd:
sudo systemctl restart sshd
查看mobaXterm中x11-forwarding设置:
须要勾选settings->configuration->ssh->x11-forwarding
查看xauth是否装置:
yum install xauth
xauth装置后,.Xauthority缺失问题:
mobaXterm再次登录后,依然可能 报错/usr/bin/xauth: file /home/vagrant/.Xauthority does not exist
解决办法:创立.Xauthority
[vagrant@dw1-cn ~]$ touch /home/vagrant/.Xauthority[vagrant@dw1-cn ~]$ chown vagrant:vagrant /home/vagrant/.Xauthority
.Xauthority配置后,nest登录的用户xclip不work问题:
测试xeyes,ssh登录的用户、root是ok的,然而其它用户不ok###### vagrant ok[vagrant@dw1-cn ~]$ echo $DISPLAYlocalhost:11.0[vagrant@dw1-cn ~]$ xeyes[vagrant@dw1-cn ~]$ suPassword:###### root ok[root@dw1-cn ~]$ xeyes[root@dw1-cn ~]# echo $DISPLAYlocalhost:11.0###### gpadmin ng[root@dw1-cn ~]# su - gpadminLast login: Tue Sep 26 07:45:11 UTC 2023 on pts/15[gpadmin@dw1-cn ~]$ xeyesError: Can't open display:[gpadmin@dw1-cn ~]$ echo $DISPLAY[gpadmin@dw1-cn ~]$ logout