SSHポートフォワーディング(4)

SSHのポートフォワーディングの機能を用いてサーバーのXアプリケーションの画面をローカルのX Window Systemに表示する方法は,SSHポートフォワーディング(3)にメモしていました。しかし,その後,DMZのWAN側のsshポートをデフォルトの22番から別の番号に変えました。これは,そこらじゅうからsshアタックがあるためポート番号を変えることで多少なりともアタックを避けたいとの意図でした。

その結果,以前に書いた方法ではアクセスできなくて,改めて試行錯誤する羽目になりました(マニュアルを読まないから無駄が多いだけなのですが)。ひととおりの手順を改めてまとめておきます。

接続は以下の通りです。

職場の外 <--> 職場のDMZ <--> 職場のLAN
Mac: 22 --> 22222: remote.dmz.jp : 22 --> 22: target.lan.jp

数字はポート番号です。

1. /etc/ssh/sshd_configを開いてコメントアウトされている
X11Forwarding yes
X11DisplayOffset 10
のコメントをはずします。1つめはX11の転送を許可,2つめは疑似Xサーバーのディスプレイ番号を10にする,という意味です。

2. 設定したら,
/etc/rc.d/sshd restart
としてsshdを再起動します。

接続をするときの手順は以下の通り。
1. ローカルのMac OS 10.15.7 (Catalina)上でX11を起動。
2. X11のメニューの「アプリケーション」から「ターミナル」を選んでxtermを起動。
3. xterm上で
xhost +
として誰でもMacのX11に画面表示できるようにします。
4. ターミナルを立ち上げて,
sudo ssh -p 22222 -L 22:target.lan.jp:22 user-ID@remote.dmz.jp
とします。パスワードを入れるとremote.dmz.jpにログインできます。
5. 別のターミナルを立ち上げて,
ssh -X localhost
とします。パスワードを入れるとtarget.lan.jpにログインできます。
6. target.lan.jpにログインしたら,
setenv DISPLAY localhost:10.0
とします。10.0というのはsshでフォワードしている疑似Xサーバーの画面番号です。これは/etc/ssh/sshd_configで設定したものに対応しています。
7. target.lan.jp上でxterm &をたたくとかなり時間がかかりますがMacの画面にxtermが表示されます。

これで,いつでもどこでも内職ができてしまいます。それでいいのか,って話ですが...。