通过 ssh 进行 X11 显示,监视器连接到远程机器

通过 ssh 进行 X11 显示,监视器连接到远程机器

我有以下设置:机器 A(a.corp,192.168.100.130,本地机器)和机器 B(b.corp,远程机器),并且显示器连接到每个这些机器。当我从 a.corp ssh 到 b.corp 时,

机器A,本地机器,即a.corp设置:

.ssh/config

Host *
    ForwardX11 yes
    TCPKeepAlive no
    ServerAliveInterval 15
    ServerAliveCountMax 10
    IdentityFile ~/.ssh/id_dsa.work

/etc/ssh_config(它是 OS-x,Darwin 12.2.0)

Host *
  SendEnv LANG LC_*
  ForwardX11 yes

MachineB,远程机器,即b.corp设置:(ubuntu内核:3.2.0)

.ssh/config

Host * 
    ForwardX11 yes
    IdentityFile ~/.ssh/id_dsa.work

/etc/ssh/ssh_config

Host * 
    SendEnv LANG LC_*
    ForwardX11 yes

情况1:

(DISPLAY on a.corp is not set)
$ echo $DISPLAY

$ ssh -X b.corp

(DISPLAY on b.corp is not set either)
$ echo $DISPLAY

$ xclock
Error: Can't open display:

案例 2:我尝试将 DISPLAY 变量设置为

(DISPLAY on a.corp is not set)
$ echo $DISPLAY

$ ssh -X b.corp
$ export DISPLAY=`echo $SSH_CLIENT|cut -f1 -d\ `:0.0
$ echo $DISPLAY
192.168.100.130:0.0
$ xclock

xclock 的显示打开了,但显示在连接到 b.corp(远程计算机)的显示器上,而不是连接到 a.corp(本地计算机)的显示器上。有没有办法强制显示出现在本地计算机(a.corp)的显示器上?

答案1

通常情况下,DISPLAY必须设置为localhost:10.0 在远程机器上/etc/ssh/ssh_config你 还应该确保偏僻的机器有线

ForwardX11 Yes

根据部分

Host *

或者

Host a.corp

如果您只想允许 X11 转发到该主机。

答案2

尝试不使用 xauth 进行连接:

客户端@home:ssh 服务器 -Y xeyes

如果这有效,那么您必须研究正确设置 x11 安全性。

相关内容