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