设置X11转发ssh

Sup*_*320 15 linux ssh archlinux beagleboard

我正在尝试设置x11转发来监控嵌入式机器人平台上的视频,但我似乎无法让电路板生成图形输出.我在直接通过以太网连接的Beagleboard xM上运行Arch Linux(不过,我打算将来使用WiFi).当我尝试设置DISPLAY变量时,它会接受它但是当我尝试运行x11应用程序时会说:

(Object:287): Gtk-WARNING **: cannot open display: [displaynamehere]
Run Code Online (Sandbox Code Playgroud)

很明显[displaynamehere]是我试图设置为显示器的东西,但是没有显示位置似乎工作.有点奇怪的是,每当我通过ssh -X连接时,它都不会给我任何错误,也不会保存我的DISPLAY变量.

(编辑)我还检查了调试日志并得到了这个输出:

debug2: load_server_config: filename /etc/ssh/sshd_config
debug2: load_server_config: done config len = 315
debug2: parse_server_config: config /etc/ssh/sshd_config len 315
debug3: /etc/ssh/sshd_config:53 setting AuthorizedKeysFile .ssh/authorized_keys
debug3: /etc/ssh/sshd_config:75 setting ChallengeResponseAuthentication no
debug3: /etc/ssh/sshd_config:96 setting UsePAM yes
debug3: /etc/ssh/sshd_config:101 setting X11Forwarding yes
debug3: /etc/ssh/sshd_config:104 setting PrintMotd no 
debug3: /etc/ssh/sshd_config:108 setting UsePrivilegeSeparation sandbox     
debug3: /etc/ssh/sshd_config:124 setting Subsystem sftp /usr/lib/ssh/sftp-server
debug1: sshd version OpenSSH_6.3, OpenSSL 1.0.1e 11 Feb 2013
debug3: Incorrect RSA1 identifier
debug1: read PEM private key done: type RSA
debug3: Incorrect RSA1 identifier
debug3: Could not load "/etc/ssh/ssh_host_rsa_key" as a RSA1 public key
debug1: private host key: #0 type 1 RSA
debug3: Incorrect RSA1 identifier
debug1: read PEM private key done: type DSA
debug3: Incorrect RSA1 identifier
debug3: Could not load "/etc/ssh/ssh_host_dsa_key" as a RSA1 public key
debug1: private host key: #1 type 2 DSA
debug3: Incorrect RSA1 identifier
debug1: read PEM private key done: type ECDSA
debug3: Incorrect RSA1 identifier
debug3: Could not load "/etc/ssh/ssh_host_ecdsa_key" as a RSA1 public key
debug1: private host key: #2 type 3 ECDSA
debug1: rexec_argv[0]='/usr/bin/sshd'
debug1: rexec_argv[1]='-ddd'
debug3: oom_adjust_setup
Set /proc/self/oom_score_adj from 0 to -1000
debug2: fd 3 setting O_NONBLOCK
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug2: fd 3 setting O_NONBLOCK
debug3: sock_set_v6only: set socket 3 IPV6_V6ONLY
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激,我一直在尝试谷歌近一个星期现在无济于事.

非常感谢!

Yor*_*iev 28

在服务器上

AllowAgentForwarding yes
AllowTcpForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
Run Code Online (Sandbox Code Playgroud)

重启sshd守护进程:

sudo service sshd restart
# or
sudo /etc/init.d/ssh restart
# or whatever way of restarting your box services works on your distro...

yum -y update xauth
apt-get -y update xauth
yum -y install xauth
apt-get -y install xauth
Run Code Online (Sandbox Code Playgroud)

现在退出服务器:

exit
Run Code Online (Sandbox Code Playgroud)

设置本地DISPLAY env var:

export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)

并调用与服务器的可信SSH连接:

ssh -Y $ssh_user@$ssh_server
Run Code Online (Sandbox Code Playgroud)

使用图形应用验证成功.如果需要,安装支持X11转发的应用程序.举个例子:

yum -y install xclock
Run Code Online (Sandbox Code Playgroud)

和行动!

for i in {1..3} ; do bash -c "xclock &" ; done ;
Run Code Online (Sandbox Code Playgroud)


phi*_*l_w 1

ssh 应该自动设置显示。通常的嫌疑人: /etc/ssh/sshd_config 中缺少“X11Forwarding yes”

要调试,您可以在客户端和服务器上运行详细模式,您可能会注意到一些事情:尝试在“服务器”端(调试模式,无守护进程)

$ /usr/sbin/sshd -d -p 222
Run Code Online (Sandbox Code Playgroud)

在“客户端”上:

$ ssh -v -Y phil@192.168.0.14 -p 222
Run Code Online (Sandbox Code Playgroud)

偶尔我会遇到一些奇怪的事情,比如“缺少 xauth”......