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 ~]$ su Password: [root@dw1-cn vagrant]# xclip Error: Can't open display: (null) [root@dw1-cn vagrant]# xeyes Error: 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_config X11Forwarding 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 $DISPLAY localhost:11.0 [vagrant@dw1-cn ~]$ xeyes [vagrant@dw1-cn ~]$ su Password: ###### root ok [root@dw1-cn ~]$ xeyes [root@dw1-cn ~]# echo $DISPLAY localhost:11.0 ###### gpadmin ng [root@dw1-cn ~]# su - gpadmin Last login: Tue Sep 26 07:45:11 UTC 2023 on pts/15 [gpadmin@dw1-cn ~]$ xeyes Error: Can't open display: [gpadmin@dw1-cn ~]$ echo $DISPLAY [gpadmin@dw1-cn ~]$ logout