フツーって言うなぁ!

フツーなサラリーマンのフツーな嘆き.

KUINS-IIIでSSHポートフォワーディングを用いて内部サーバにアクセスする

ネットワークも勉強しよう勉強しようと思いながら,全く進まなくていつもGoogle先生にお世話になっています.

研究室内でサーバを立てて実験に利用しているのですが,お盆で帰省したいのに研究室外からアクセスできないのはつらい!ということで,いろいろ調べてみたところ,解決策がありました.

京都大学が運営している学術情報ネットワークサービス(KUINS)では,SSHポートフォワーディングのサービスを行っており,これを使えばできるそうです…

やりたかったこと

学外のネットワークから学内のネットワークにあるサーバにSSHでリモートログインしたい.
OSはMac OS X Marvericks.

やり方

次のような状態を想定する.

client: 学外にあるマシン(Mac).これを使ってリモートログインしたい
target: 今回リモートログインして動かしたいサーバ(Linux).学内(この場合は研究室内)にあるので,もちろんそのままアクセスすることはできない
forward.ipse.media.kyoto-u.ac.jp: SSHサーバ.学外からのアクセスが可能になっており,SSHポートフォワーディングにおける中継役となっている

0. 研究室内からtargetにSSH接続できるようにしておく.
今回の話には関係ないので割愛.

1. 私の研究室(他の研究室も?)では学外からのアクセスの場合,1023番以下のポートへのアクセスは拒否される.
よって,サーバの1024番以上のポート番号をSSH接続用に開けておく必要がある.
今回は22222番ポートをSSH用に開ける.

私の環境では,SSH用の設定は,/etc/ssh/sshd_configに書かれていたので,これを修正する.

lethe@target$ sudo emacs /etc/ssh/sshd_config

lethe@target$ sudo /etc/init.d/ssh restart

2. clientによってSSHポートフォワーディングを行う.
今回は,localhostの30000番ポートをtargetの22222番ポートに対応させることとする.

lethe@client$ ssh -fN -L 30000:[targetのIPアドレス]:22222 [自分のECS-ID or SPS-ID]@forward.ipse.media.kyoto-u.ac.jp

接続には,京都大学の学生が持つECS-IDか,教職員が持つSPS-IDが必要.
接続の際にパスワードを求められるので,IDに対するパスワードを入力する.

3. clientによるSSH接続を行う.

lethe@client$ ssh -p 30000 lethe@localhost

問題がなければ,これでつながるはず.


ポートフォワーディングについては,資料を読んでも???という感じだったので,どこかでしっかり勉強したいです.

今までは,研究室に行かないと開発が進められない情弱進行だったのですが,少しはマシになりそうですね…*1

参考

K. Sato's Web Page

管理者必見! ネットワーク・コマンド集 - sshコマンド:ITpro

*1:どこでやろうが進まないものは進まない