組み込みのロボットプラットフォームでビデオを監視するために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.
どんな提案も大歓迎です、私はこれでほぼ一週間グーグルでこれを試してみましたが無駄になりました。
どうもありがとう!
編集/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 ;
この問題が発生するたびに、ほとんどの場合、次の2つのオプションに従うことになります。DISPLAYの設定など、構成をさらに変更する前に、以下のように設定する必要があると思います。
X11Forwarding yes
X11UseLocalhost no
sshはDISPLAYを自動的に設定する必要があります。通常の容疑者:/ etc/ssh/sshd_configに「X11Forwarding yes」がありません
デバッグするには、クライアントとサーバーで詳細モードを実行すると、何かに気付くことがあります。「サーバー」側で試してください(デバッグモード、デーモンなし)
$ /usr/sbin/sshd -d -p 222
「クライアント」で:
$ ssh -v -Y [email protected] -p 222
「missing xauth」のような奇妙なことに出会うことがあります...