Windowsを実行している自宅のコンピューターから学校のLinuxサーバーの1つにアクセスする必要があります。そして、シェルだけでなく、リモートでグラフィカルデスクトップ(Xサーバー)にアクセスする必要があります。
問題には、設定が異なる3つのLinuxサーバーが含まれます。それらのいずれにも管理者権限がなく、これらの設定を変更できません。 3つのサーバーはAisa、Lethe、Auraと呼ばれます(ここではギリシャ神話が好きです)。それらのすべては学校のローカルネットワークの一部です。
LetheまたはAuraのグラフィカルインターフェイスにアクセスする必要がありますが、どれでも問題ありません。
これが私が見つけたものです:
ssh aura
。では、WindowsコンピュータからLetheまたはAuraへのグラフィカル接続を取得するにはどうすればよいですか?どんな提案でも大歓迎です。
editvncserver
を実行した後、AuraからAisaに戻る方法を示すコードは次のとおりです。
aisa:/home/user>$ ssh aura
Last login: Sat Oct 13 00:00:00 2012 from aisa.domain.com
aura:/home/user>$ module add vnc
aura:/home/user>$ vncserver
New 'aura.domain.com:1 (user)' desktop is aura.domain.com:1
Starting applications specified in /home/user/.vnc/xstartup
Log file is /home/user/.vnc/aura.domain.com:1.log
aura:/home/user>$ Connection to aura closed by remote Host.
Connection to aura closed.
aisa:/home/user>$
edit 2ファイルの内容/home/user/.vnc/aura.domain.com:1.log
コマンドvncserver
を実行した後:
aura:/home/user>$ cat /home/user/.vnc/aura.domain.com:1.log
/packages/run/vnc-4.1.2/Xvnc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
/home/user/.vnc/xstartup: line 4: xsetroot: command not found
/home/user/.xsession: line 15: xset: command not found
vncconfig: unable to open display "aura.domain.com:1"
/home/user/.xsession: line 42: xmodmap: command not found
Module xv
Module modules
Module viewers
Module WindowMaker-0.80.2
Module mozilla
ModuleCmd_Load.c(199):ERROR:105: Unable to locate a modulefile for 'mozilla'
stty: standard input: For this device invalid ioctl
wmaker: error while loading shared libraries: libtiff.so.3: cannot open shared object file: No such file or directory
注:チェコ語で表示された一部の文字列を翻訳しました(Auraはチェコ語版のRed Hatを実行しています)
VNC Xサーバーを使用してみることができます。非特権ポートを使用して通信し、ルート特権なしで実行できます。 VNCのビルドを回避するために、使用中のディストリビューションに含まれているVNCのポートを確認します(いくつかのオプションTigerVNC
、OpenVNC
、RealVNC
、e.t.c。があります)。
たとえば、Fedora 17には、VNCサーバーを起動するために必要なすべてを備えたtigervnc-server-minimalパッケージがあります。
/usr/bin/Xvnc
/usr/bin/vncconfig
/usr/bin/vncpasswd
/usr/share/man/man1/Xvnc.1.gz
/usr/share/man/man1/vncconfig.1.gz
/usr/share/man/man1/vncpasswd.1.gz
それをダウンロードして、バイナリを抽出し、それらを〜/ binフォルダーに入れてください。
まず、各システムでvncpasswd
を1回実行して、vncサーバーインスタンスにアクセスするためのパスワードを設定する必要があります。
次に、コマンドXvnc
を使用してサーバー自体を起動し、サーバーが起動したディスプレイをメモします(標準出力に情報が出力されます)。
次に、TCP PuTTY
を使用したポート転送を番号5900+<display number>
のポートに設定します。たとえば、ディスプレイ:1
の場合は、ポート5901へのトンネル:
PuTTY -ssh -L5901:127.0.0.1:5901 user@Host
次に VncViewer を起動し、Windowsボックスのディスプレイlocalhost:1
に接続します。
完了したら、Xvncサーバーを停止することを忘れないでください。サーバーのリソースを無駄にすることはありません。
killall Xvnc
オーラの場合は、直接ログインできないため、もう少し複雑です。サーバーの1つがLAN内の任意のマシンへのトンネルの設定を許可している場合は、適切なトンネルを作成します。
PuTTY -ssh -L5901:<ip-of-aura>:5901 user@Host
それ以外の場合は、aisaまたはletheでリモートシェルからポート転送を使用してauraでsshセッションを開始します。
ssh -L5901:127.0.0.1:5901 aura
VNCは、GUIプログラムを実行する最も簡単な方法ではありません。接続がダウンしてもプログラムを強制終了しないなど、直接的なリモートXの方法よりも優れていますが、リモート側で実行するプログラムがさらに必要です。簡単な方法として、Xming + PuTTYまたはXming + Cygwin SSHをお勧めします。
Xmingサーバーを実行し、次にPuTTYを実行して、Xを転送するように指示します。AisaでXプログラムを実行できるので、その部分はすでに機能しています。 LetherとAuraへのX転送も有効にしていることを確認してください。
これがLetheで機能しない理由は、X転送が無効になっているか、一部のライブラリが不足している可能性があります。 SSHセッション(echo $DISPLAY
)のDISPLAY
環境変数の値を確認します。 localhost:10.0
のような何かが見えるはずです。値が空の場合、X転送は失敗しました。システム管理者によって無効にされている可能性があります。通常/etc/sshd_config
または/etc/ssh/sshd_config
のSSHサーバー構成を確認します。 X11Forwarding yes
という行が含まれている必要があります。そうでない場合は、システム管理者に追加するように依頼してください(そうすることでサーバーにセキュリティ上のリスクはありません。clientはすべてのリスクを負い、いずれにせよ手動で設定できるため、オプションdefault offは意味がありませんが、デフォルトのOpenSSH構成ではこのようになっています)。
サーバーでX11転送が無効になっている場合でも、X11転送を機能させることができる場合がありますが、多少の努力が必要です。リモート側のポート6010からローカルホストのポート6000へのポート転送を設定する必要があります。ポート6000 + [〜#〜] n [〜#〜]はDISPLAY
value :N.0
。それに応じてDISPLAY
環境変数を設定します。ポート6010のexport DISPLAY=localhost:10
。ポート6010がLetheで使用されている場合は、別のポートを選択してください。次に、X Cookieをリモートシステムにコピーする必要があります。 XmingでCookieを抽出する方法がわかりません。サーバー側でxauth add localhost:10 0123456789abcdef0123456789abcdef
を実行します(32桁の16進数はCookieの値です)。
Auraの場合、SSHトンネリングを使用します。 PuTTYにAisaに接続するように指示し(エージェントとX11転送を有効にして)、そこでssh -X
コマンドを実行します。