web-dev-qa-db-ja.com

SSH:Xディスプレイではなくリモート画面でGUIプログラムを起動

問題

ほとんどの人は、クライアントのディスプレイを使用してリモートホストでGUIプログラムを実行するために、「-X」オプションを使用してssh経由でサーバーに接続することを望んでいます。サーバーに接続されている物理モニターでGUIプログラムを実行したいのですが。これは可能ですか?より具体的にさせてください:

私の状況は次のとおりです。キーボードまたはマウスのないワークステーションがありますが、モニターが接続されています。ラップトップでSSHで接続し、xeyesやssvncなどのグラフィカルプログラムを起動して、ワークステーションのモニターに表示したいと考えています。

[xapple@laptop ~]$ ssh workstation
Last login: Mon Sep 26 20:03:35 2011 from laptop
[xapple@workstation ~]$ export DISPLAY=:0
[xapple@workstation ~]$ xeyes
No protocol specified
Error: Can't open display: :0

編集:追加情報

私はいくつかのことをもっと明確に説明する必要があります:

  • ワークステーションでSudoにアクセスできます。必要に応じて何でもインストールできます。
  • ワークステーションはGNOMEユーザーインターフェイスを実行しています。
  • キーボードとマウスをワークステーションから切断する前に、GNOMEセッションにログインしました。そのため、現在ワークステーションのモニターにGNOMEデスクトップを表示できます。
  • ワークステーションのラップトップからプログラムを実行したくありません。ワークステーションでワークステーションプログラムを実行したい。 xeyesまたは任意の実行可能ファイルがリモートサーバーで見つかり、リモートサーバーのモニターで実行する必要があります
  • これを実行すると、カーソルがインターフェイスに接続されない状況になることを理解しています。クリックできません。それで大丈夫です。

どんな助けも大歓迎です!

11
xApple

すべてのxlib-applicationはxserverに接続する必要があります。次のいずれかの方法で、サーバーへの接続をアプリに通知する必要があります。

  • 環境変数DISPLAYの設定
  • -displayなどのコマンドラインフラグを使用する

最初のxserverは通常、接続文字列 ':0'で到達できます。だから、これを試してください:

xeyes -display :0

またはこれ

env DISPLAY=:0 xeyes
5
akira

このワークステーションはX Windowsサーバーを実行していますか?それがなければ、これはすべての問題です。

データをグラフィックス、ピクセル、色、場所に処理するには、何かが必要です。 「モニター」は、それを実行するための何らかのソフトウェアがないと役に立たない。

そうだと思います。 (しかし、テキストから、確かにそうでなければ聞こえます)

「ワークステーション」と「ラップトップ」のホスト名(および/ etc/hostsまたはDNSなどを使用した適切なDNS解決)を指定します...そうでない場合は、マシンのホスト名を適切なIPアドレスに置き換えます。

ssh workstation
xhost +laptop

これで、ワークステーションのXserverに「ラップトップ」の接続を許可する権限が設定されるため、この時点でワークステーションからログアウトできます。

dISPLAY env varを適切に設定してプログラムを起動すると、ラップトップで実行中に、アプリケーションがワークステーションに表示される可能性があります。

DISPLAY=workstation:0 xeyes

-または-

export DISPLAY=workstation:0
xeyes

どちらの方法でも機能します。後者の場合、シェルから起動すると、X11に関連するすべてのものがワークステーションに表示されます。 (それが理にかなっていると思います)

「xhost」行は、ラップトップがワークステーションのXserverに接続することを許可することです。これがないと、Xサーバーをパーミッションなしで起動しない限り、パーミッションが拒否されます。これは実際にお勧めしません。データはラップトップとワークステーションの間で「プレーンテキスト」で送信され、傍受される可能性があるため、「xhost」保護は依然として不十分ですが、これは簡単な解決策です。

プライバシーが必要な場合は、ラップトップとワークステーションの間にある種の暗号化されたトンネルを設定する必要があります(ディスプレイ用のポート6000:0)。うん、それはこの時点で奇妙になります。

制御された環境にいる場合は、「xhost + laptop」コマンドを使用するだけで十分です。そのコマンド「xhost +」の「laptop」部分を離れると、誰でもXserverに接続して表示できます。

マウスがワークステーションXserverに「接続」されておらず、ウィンドウを操作したり、クリックしたりできないことに注意してください。

マウスを接続したい場合は、x2x、synergy、vnc、またはX Windowsベースの画面共有アプリケーションなどをお勧めします。

5
lornix