私はすでにログインしたubuntu linuxマシンを持っていて、Xサーバーが実行されています(gdmのようなログインマネージャーにパスしています)。 sshを介してこのマシンにアクセスできます。私の目標は、このマシンでx11vncを起動し、すでに実行中のXサーバーに接続することです。
マシンにsshしてx11vncを起動すると、次のように表示されます。
X11 was unable to open the X DISPLAY ":0", it cannot continue.
リモートマシンにx11vncを物理的にアクセスできず、Xserverがすでに起動している場合、どうすれば起動できますか?これを実行したいのは、リモートマシンで作業したいウィンドウがいくつか開いているためです。
編集:私はx11vnc -findも試しました。今回はそのエラーメッセージが表示されず、クライアントが接続されていることを検出できました。
Got connection from client x.x.x.x
...
wait_for_client: find display cmd failed
wait_for_client: bad reply '
'
したがって、-findコマンドは避けられないことを遅らせるだけのようです。
おかげで、
私のgentoo kdeデスクトップで、これはkdeがすでに実行されている場合に最適です。
x11vnc -xauth/var/run/xauth/A:0-bHJFac -display:0 -passwd "password" -forever -shared
私はgnomeを使用していたので、単にgnomeが使用していたx権限ファイルをx11vncに与えるだけでした。これは以下によって行われました:
x11vnc -xauth /var/lib/gdb/:0.Xauth -display :0
私のために
Description: Debian GNU/Linux 6.0.5 (squeeze)
Release: 6.0.5
Codename: squeeze
apt-cache policy gdm3
gdm3:
Installiert: 2.30.5-6squeeze4
これは、ssh経由でリモートでログインした場合でもうまく機能しました。
su -c "x11vnc -auth /var/run/gdm3/auth-for-username*/database -display :0 -forever -passwd foo"
編集:たとえば、 SSH経由でvncを快適に使用するためのssvnc。上記のようにx11vncを起動しますが、 "-localhost"オプションを指定します。
su -c "x11vnc -auth /var/run/gdm3/auth-for-username*/database -display :0 -forever -passwd foo -localhost"
次に、ssvncスクリプトの[Use SSH]をクリックすると、sshを介して接続されるため、x11vncがグローバルにリッスンする必要はありません。
私は非常に遠回りの方法でそれを解決したので、私はそれをどのように行ったかを詳しく説明します。これは非常に最適ではなく、関与しています。他の人たちは、エレガントで短い解決策をすでに提供しています。
私が直面した問題は、x11vncがグラフィカルディスプレイを見つけられなかったと言ってSSHからやり直すことを拒否したことです。だから私の解決策は...
最初に、SSHを介してrootとして、ディスプレイ上のマシンでTigerVNCサーバーを起動しました:1
# vncserver :1
(ルートとして愚かだった)
次に、クライアントコンピューターからTigerVNCを使用してこのディスプレイに接続しました
Connect to: a.b.c.d:1
現在、私はroot(非常に愚かな)としてGUIにいます。ターミナルを開き、元のユーザーとしてx11vncを起動しました
# Sudo -u milind x11vnc -many -display :0
今私はできました
Connect to: a.b.c.d:0
できた!非常に遠回りですが。