web-dev-qa-db-ja.com

sshを介したX11転送のセットアップ

組み込みのロボットプラットフォームでビデオを監視するためにx11転送を設定しようとしていますが、グラフィカル出力を生成するためのボードを取得できないようです。イーサネット経由で直接配線されたBeagleboard xM上でArch Linuxを実行しています(ただし、将来はWiFiを使用する予定です)。 DISPLAY変数を設定しようとすると、受け入れられますが、x11アプリケーションを実行しようとすると次のように表示されます。

(Object:287): Gtk-WARNING **: cannot open display: [displaynamehere]

明らかに[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.

どんな提案も大歓迎です、私はこれでほぼ一週間グーグルでこれを試してみましたが無駄になりました。

どうもありがとう!

15
SuperUser320

サーバー上

編集/etc/ssh/sshd_config

AllowAgentForwarding yes
AllowTcpForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no

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

サーバーを終了します。

exit

クライアントで

DISPLAY環境変数をローカルに設定します。

export DISPLAY=:0.0

サーバーへの信頼できるSSH接続を開始します。

ssh -Y $ssh_user@$ssh_server

グラフィカルアプリで成功を確認します。必要に応じて、X11転送をサポートするアプリをインストールします。例として:

yum -y install xclock

およびアクション:

for i in {1..3} ; do bash -c "xclock &" ; done ;
28
Yordan Georgiev

この問題が発生するたびに、ほとんどの場合、次の2つのオプションに従うことになります。DISPLAYの設定など、構成をさらに変更する前に、以下のように設定する必要があると思います。

X11Forwarding yes
X11UseLocalhost no
1
Baris Demiray

sshはDISPLAYを自動的に設定する必要があります。通常の容疑者:/ etc/ssh/sshd_configに「X11Forwarding yes」がありません

デバッグするには、クライアントとサーバーで詳細モードを実行すると、何かに気付くことがあります。「サーバー」側で試してください(デバッグモード、デーモンなし)

$ /usr/sbin/sshd -d -p 222

「クライアント」で:

$ ssh -v -Y [email protected] -p 222

「missing xauth」のような奇妙なことに出会うことがあります...

1
phil_w