「xemacs over ssh」って言葉があるかわかりませんが…
ローカルPCから別のサブネット内にあるプライベートアドレスをもったPC に接続して、そのPCで xemacsを起動して、ローカルPCに表示させる。
当然、brainから直接turingへは接続できません。一旦、laplaceに接続し てから、間接的に接続する必要があります。
[brain] ---X--> [turing] [brain] ------> [laplace] ------> [turing]
laplace上でポートフォワーディングをして、 laplaceの特定のポートをturingへ飛ばしてやる。
→ 設定が面倒そう
トンネルを設定して、VPNを構成する。
→ もっと設定が面倒そう
できたら、ローカルホスト以外のホストには手を入れずに、できないだろ うか?
SSHにはポートフォワーディングする機能があるので、解法1と同様のこと ができそうです。しかも、ローカルホスト上で設定できそうです。
brain$ ssh -N -L 8022:turing:22 laplace &これにより、ローカルホストのポート 8022を laplace を経由して、 リモートホストturingのポート22に接続することが可能になります。 -Nオプションが無いと、laplaceにログインしてしまうので、これを避ける ために入れておきます。
ローカルホストのポート 8022がポートフォワーディングされて、 turingのポート22に接続されているので、この状態で、turing上のxemacs を呼び出してみます。
brain$ ssh -p 8022 -f localhost xemacsローカルホストlocalhostのポート8022に接続して、xemacsを実行しているこ とに注意してください。 でも、turing上のxemacsが実行されています。
#! /bin/bash # [localhost]:22 -(ssh)-> [laplace:22] -> turing:22 LOCAL_PORT=8022 DEST_HOST=turing DEST_PORT=22 VIA_HOST=laplace PID=`ps augxw | grep -v grep | grep "ssh -N" | awk '{print $2;}'` #echo $PID if [ -z "$PID" ]; then ssh -N -L $LOCAL_PORT:$DEST_HOST:$DEST_PORT $VIA_HOST & sleep 1 fi ssh -p $LOCAL_PORT -f localhost xemacs
とまあ、楽をするために、一所懸命努力して作りましたとさ。