Linux

UNIX 的 MobaXTerm X11 轉發問題

  • September 21, 2018

在 MobaXTerm 上執行以下命令:

在 Windows 筆記型電腦上使用 MobaXTerm 終端:

> xhost +ulv78.abc.com
ulv78.abc.com being added to access control list

> ssh -l someuser ulv78.abc.com # RHEL 7.x
SECURITY NOTICE:
Unauthorized use is prohibited. Use of this private computer system is your consent to being recorded and monitored. We reserve the right to seek all remedies for unauthorized use. Evidence of suspected illegal use may be given to law enforcement.
X11 forwarding request failed on channel 0
Last login: Thu Sep 20 12:06:57 2018 from win_host_name
$ bash
$ echo DISPLAY=win_host_name:0.0; export DISPLAY >> .bashrc
$ sudo su - # as root sudoer
$ echo DISPLAY=win_host_name:0.0; export DISPLAY >> .bashrc
$ cd /install_path
$ ./setup
Error: Can't open display: win_host_name:0.0

以上會話有X11 forwarding request failed on channel 0錯誤

編輯:

在&中設置DISPLAY條目。從 MobaXterm 終端連接後,輸出如下:.profile``.bashrc

> ssh -l someuser ulv78.abc.com
SECURITY NOTICE:
Unauthorized use is prohibited. Use of this private computer system is your consent to being recorded and monitored. We reserve the right to seek all remedies for unauthorized use. Evidence of suspected illegal use may be given to law enforcement.
X11 forwarding request failed on channel 0
Last login: Thu Sep 20 12:36:54 2018 from win_host_name
$ echo $DISPLAY
win_host_name:0.0
$ xterm
xterm: Xt error: Can't open display: win_host_name:0.0
$

1)如何解決X11轉發錯誤?

  1. 我在 ssh 客戶端的最後登錄資訊中看到錯誤的域名。

X11 轉發(作為初始使用者)

MobaXTerm 支持 X11 轉發,預設開啟。ulv78如果DISPLAY在linux 伺服器ssh(請參閱如何通過 SSH 轉發 X 以遠端執行圖形應用程序?有關其工作原理的更多詳細資訊。

正確設置後,您不應自己更改DISPLAY環境變數;如果您在登錄文件(.bashrc等)中添加了行來設置它,則必須再次刪除它們。你應該看到這樣的結果:

ssh -l user ulv78.domain.com

(現在user在遠端機器上執行)

user@ulv78$ echo $DISPLAY
localhost:10
user@ulv78$ xterm

xterm在這裡用作測試應用程序。它應該出現在您的 Windows 機器上,儘管它是由遠端 Linux 機器啟動的。它的提示將表明您是user@ulv78,而不是 MobaXTerm 的初始提示。

恭喜,這是第一步。X11 轉發正在工作。現在進入高級部分:

以其他使用者身份訪問 X11 伺服器

當您切換到另一個使用者(例如rootsu -並嘗試在同一 X 伺服器上執行圖形應用程序時,您會發現您的環境變數已經全部消失。這是您必須手動更改DISPLAY以及使用xauth(1)命令複製 X 憑據的時候(說明基於https://blog.mobatek.net/post/how-to-keep-X11-display-在-su-or-sudo/ 之後):

ssh -l user ulv78.domain.com

(現在user在遠端機器上執行)

user@ulv78$ echo $DISPLAY
localhost:10
user@ulv78$  xauth list | tail -n 1
ulv78/unix:10  MIT-MAGIC-COOKIE-1  4fa72fbe2b05ebe3f047a1b0430ecf6a
user@ulv78$ sudo su -

(現在以root身份執行)

root@ulv78$ export DISPLAY=localhost:10    # <- copied from above
root@ulv78$ xauth add ulv78/unix:10  MIT-MAGIC-COOKIE-1  4fa72fbe2b05ebe3f047a1b0430ecf6a # <- copied from above
root@ulv78$ cd /install_path
root@ulv78$ ./setup

./setup應用程序現在將出現在您的 Windows 機器上,就像xterm之前所做的一樣。

引用自:https://unix.stackexchange.com/questions/470331