===== SSHトンネリング ===== SSHトンネリングは学外から、学内のサーバを利用するのに使用する技術のひとつです。 {{:ja:ssh_tunnling_1.png?400|}} SSH接続で sol にログインできます。 {{:ja:ssh_tunnling_2.png?400|}} solからSSH接続で学内の様々なサーバにログインできます。 {{:ja:ssh_tunnling_3.png?400|}} solへSSH接続する際に、ついでに幾つかのトンネルを掘っておくと、手元のコンソールのローカルな通信ポートが、リモートサーバの通信ポートの役割を果たしてくれるようになります。 学外からログインが可能なサーバへSSHで接続する際に、ついでにトンネルを掘ることで、サーバから先のネットワークに、目の前のコンソールからアクセスできるようにします。 SSHトンネリングは、SSHポートフォワーディングとも呼ばれます。SSHトンネリングを使うと、次のことが可能になります。 * オンラインジャーナルなど、学内から利用可能な、学外のサービスへのアクセス * [[https://kyoumu.office.uec.ac.jp/gakunai|教務課の学内専用ページ]]へのアクセス * [[http://gpu1.ied.inf.uec.ac.jp|IEDのGPUサーバ上のJupyterHub]]へのアクセス (J専攻限定) ==== 準備 ==== 次の情報を用意してください。 |UECアカウント|(学生はアルファベット1文字+7桁の数字)| |パスワード|(UECアカウントのパスワード)| パスワードを失念したら、情報基盤センターの執務室に行くしかありません。インターネット経由では、再発行してもらえません。 === ブラウザの設定 === ブラウザのプロキシを次のように設定してください。 |プロキシサーバ|localhost| |ポート|8080| あとは、次のどちらかの準備をしてSSH接続をするだけです。 ==== Windowsユーザ向け ==== ここでは、PuTTYというSSHクライアントを用いる方法を示します。 [[ja:putty|PuTTYの入手とインストールはこちら]]を参考に済ませてください。 === PuTTYの設定 === PuTTYを起動すると、次の画面、もしくはその日本語化された画面が表示されます。 {{https://www.cc.uec.ac.jp/ug/ja/_images/ssh_tunneling_putty01.PNG}} この画面で行う操作より先に、Categoryという左半分のエリアで [Connection]-[SSH]-[Tunnels]を辿って、Tunnelsをクリックし、次の画面を表示させます。 {{:note:cc:putty-tunnel.jpeg|}} == 学内のメールサーバを使用する場合 == この画面で、次の項目をキー入力して埋めます。 |Source port|1080| |Dynamic|選択| そして [Add] をクリックするとForwarded ports に D1080 と表示されます。 {{https://www.cc.uec.ac.jp/ug/ja/_images/ssh_tunneling_putty03.PNG}} Mozilla Thunderbirdなど、SMTPサーバとPOP3サーバやIMAP4サーバへのアクセスに、SOCKSサーバを経由できるメーラでは、この設定を付与しておくと便利です。 == 学内のプロキシサーバを使用する場合 == 同じくこの画面で、次の項目をキー入力して埋めます。 |Source port|8080| |Destination|proxy.uec.ac.jp:8080| |Local|選択| そして [Add] をクリックするとForwarded ports に L8080 proxy.uec.ac.jp:8080 が追加されます。 == セッションの設定の保存 == この状態で、最初の画面に戻るために、Categoryの表示の一番上の[Session]をクリックします。 {{https://www.cc.uec.ac.jp/ug/ja/_images/ssh_tunneling_putty01.PNG}} ここで、次の欄をキー入力して埋めてください。 |Host Name (or IP address)| sol.cc.uec.ac.jp| |Port|22| |Saved Sessions|sol| こののちに[Save]をクリックすると、今まで行った設定がsolという名前で保存されます。 === PuTTYによるsolへのSSH接続と接続解除 === Saved Sessionsの下のsolをダブルクリックしてから、一番下の[Open]を押すと、solへのSSH接続が始まります。 そうしたらUECアカウントとパスワードを入力すると、solにログインされます。UNIXサーバにログインしますが、UNIXは使いません。 SSHトンネリングを終了するには、その画面でexit [Enter]と入力します。 ==== Macユーザ向け ==== === SSH接続 === UNIXサーバにログインしますが、UNIXは使いません。 macOSが動いているコンピュータにはSSHのクライアントがインストールされています。ターミナルを起動するか、[[https://www.iterm2.com/|iTerm2]]などのターミナルエミュレータをインストールして起動した上で、次の1行をコマンドラインで打ち込んでください。 ssh [UECアカウント]@sol.cc.uec.ac.jp 学内のプロキシサーバを学外から利用するには、SSHのポートフォワーディングという機能を使います。ローカルホストの8080番ポートと学内のプロキシサーバの8080番ポートを繋ぐと、学内のプロキシサーバを学外から使うことができます。 ssh -L8080:proxy.uec.ac.jp:8080 [UECアカウント]@sol.cc.uec.ac.jp このようにログインした後は、インターネットプロキシの設定を |サーバ|localhost| |ポート|8080| と設定すると、学内のウェブサーバにアクセスできるようになります。 学内のホストと通信を行うには、通信路の確立には、SSHのダイナミックフォワーディングという機能を用い、アプリケーション側のSOCKSプロキシを利用する機能と組み合わせて実現します。 ダイナミックフォワーディングは、ローカルホストの特定のポートをSSH接続先のホストから任意のホストの任意のポートとの通信のためのSOCKSプロキシの役割を果たさせます。ローカルの1080番ポートにSOCKSの役割を果たしてもらうには、次のオプションを設定します。 ssh -D 1080 [アカウント名]@sol.cc.uec.ac.jp X-Window用のGUIを持つソフトウェアをリモートホストで起動して、学外のコンピュータで用いるには、X11のフォワーディングを多段で行います。これを多段接続、多段フォワーディングなどと言います。 ssh -X [アカウント名]@sol.cc.uec.ac.jp (通常はこちらで可能) ssh -Y [アカウント名]@sol.cc.uec.ac.jp (こちらでないといけないと要求されたときのみ) 以上のすべてを組み合わせるには、次の1行を実行します。 ssh -D 1080 -L8080:proxy.uec.ac.jp:8080 -X [UECアカウント]@sol.cc.uec.ac.jp === IEDのGPUサーバを用いる場合 === IEDのGPUサーバ上のJupyter-Hubにアクセスしたい場合は、次のようにSSHトンネルを確立してくださると良いです。 ssh -L8000:gpu.ied.inf.uec.ac.jp:80 \ -L8001:gpu1.ied.inf.uec.ac.jp:8000 \ -L8002:gpu2.ied.inf.uec.ac.jp:8000 \ -L8003:gpu3.ied.inf.uec.ac.jp:8000 \ -L8004:gpu4.ied.inf.uec.ac.jp:8000 \ [UECアカウント]@sol.cc.uec.ac.jp このようにsolにログインした後は、次のそれぞれのURLのように、ポートを変えてアクセスすることで、4台のGPUを活用できます。 * http://localhost:8000/ はどのGPUサーバが空いているかの確認 * http://localhost:8001/ はGPU1上のJupyter-HUBへのアクセス * http://localhost:8002/ はGPU2上のJupyter-HUBへのアクセス * http://localhost:8003/ はGPU3上のJupyter-HUBへのアクセス * http://localhost:8004/ はGPU4上のJupyter-HUBへのアクセス === SSH接続の解除 === SSHトンネリングを終了するには、その画面でexit [Enter]と入力します。