Linux
UNIX 的 MobaXTerm X11 轉發問題
在 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轉發錯誤?
- 我在 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 伺服器
當您切換到另一個使用者(例如
root
)su -
並嘗試在同一 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
之前所做的一樣。