web-dev-qa-db-ja.com

ssh runfirefoxでターミナルを開く->ディスプレイが見つかりません

ハドソンスレーブでSeleniumテストを実行したいと思います。
Seleniumを実行するスレーブ(つまりマシン)はUbuntu10.04です。
したがって、Gnomeがあります。 Seleniumを実行するにはFirefoxが必要です。

Hudsonは現在、Ubuntuマシンへのssh接続を作成し、そこでSeleniumを起動しています。 SeleniumはFirefoxを起動しようとします。

そして今それは非難します:

エラー:ディスプレイを開けません

'ssh Shell'がXサーバーから表示を取得するには何をする必要がありますか?

3
nebenmir

リモートマシンでssh X11転送が有効になっていることを確認します。

$ grep X11 /etc/ssh/sshd_config 
X11Forwarding yes
X11DisplayOffset 10
$

リモートマシンに接続するには、ssh -X user@remote_machineを使用します。リモートマシンで別のユーザーを使用してXクライアントを起動している場合は、xauth listを使用してsshユーザーの現在の資格情報を取得してから、xauth addを使用して使用するユーザーに資格情報を追加します須藤/ su。

read -p 'Username: ' u;Sudo -H -u $u xauth add $(xauth list|grep :$(echo ${DISPLAY: -4:2}));Sudo su - $u
2

質問が私が思うものなら

ssh testuser@ubuntuhost firefox --display :0 -no-remote

buntuhostでFirefoxを起動し、testuserbuntuhostに既にログオンしていると仮定して、そのマシンに表示します。

私はSelenium、またはあなたが正確にテストしようとしているもの(パフォーマンス、表示の正確さ、または単にいくつかのJavaScriptからの成功の戻り値)を知りませんが、「実際の」Xサーバー、つまり実際にそれを必要としないかもしれませんUbuntuホストのモニターにが表示されます。 Xvfbはここで役立つかもしれませんが、それは元の質問の範囲を超えています...

1
Norky

X転送を有効にし、Xサーバーをローカルで実行する必要があります。パス -Xまたは-Yからsshへ。

ssh -X root @myserverまたはそのようなもの

0

Sshトンネルを介してXを転送する必要があります。これを試してください:

ssh -X Host_IP

ログインしたら、ターミナルでFirefoxを起動すると、Xサーバーがローカルマシンに転送されます。

0
tw79