在 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转发错误?
2) 我看到 ssh 客户端的上次登录消息中显示了错误的域名。
答案1
X11转发(作为初始用户)
MobaXTerm 支持 X11 转发,默认启用。如果在 Linux 服务器上启用了 X11 转发 ( ulv78
),则DISPLAY
设置为明显的本地地址,并且您的ssh
客户端将这些请求转发回您的 X11 服务器(在 Windows 计算机上运行)。看如何通过 SSH 转发 X 来远程运行图形应用程序?有关其工作原理的更多详细信息。
正确设置后,您应该不是DISPLAY
自己修改环境变量;如果您已在登录文件(.bashrc
等)中添加了行来进行设置,则必须再次删除它们。你应该看到这样的结果:
ssh -l user ulv78.domain.com
(现在user
在远程计算机上运行)
user@ulv78$ echo $DISPLAY
localhost:10
user@ulv78$ xterm
xterm
此处用作测试应用程序。尽管它是由远程 Linux 计算机启动的,但它应该出现在您的 Windows 计算机上。它的提示将表明您是user@ulv78
,而不是 MobaXTerm 的初始提示。
恭喜,这是第一步。 X11 转发正常。现在进入高级部分:
以其他用户身份访问X11服务器
当您通过切换到另一个用户(例如root
)su -
并尝试在同一个 X 服务器上运行图形应用程序时,您会发现您的环境变量全部消失了。这就是当你做必须DISPLAY
手动更改,以及使用以下命令复制 X 凭据xauth(1)命令(基于指令https://blog.mobatek.net/post/how-to-keep-X11-display-after-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
之前一样。