Last modified: Wed Apr 5 20:24:29 2017 +0900 (JST)
龍谷大学ではファイアウォールを構築している関係上、 学内のホストから直接 ssh で学外のホストに接続することはできません。
この問題を回避するには、socks サーバーを経由して ssh 通信を行う方法があります。
理工学部では、次の socks サーバーを稼働させています。
情報メディアセンターでは socks サーバーを運用していないようです。
以下では ssh 実装のひとつ、OpenSSH 2.x 以降を利用する場合の例を示します。 OpenSSH は、Linux や FreeBSD をはじめとする PC-UNIX には標準で塔載されています。 また、ソースコードからコンパイルすることで Solaris や HP-UX でも利用できる他、コンパイル済みのバイナリーを配布しているサイトも複数あります。 Google などで検索してみてください。
connect.c を入手します。
connect.c をコンパイルして connect コマンドを作成します。connect.c から引用:
* How To Compile * ============== * * On UNIX environment: * $ gcc connect.c -o connect * * On SOLARIS: * $ gcc -o connect -lresolv -lsocket -lnsl connect.c * * on Win32 environment: * $ cl connect.c wsock32.lib advapi32.lib * or * $ bcc32 connect.c wsock32.lib advapi32.lib * or * $ gcc connect.c -o connect * * on Mac OS X environment: * $ gcc connect.c -o connect -lresolv * or * $ gcc connect.c -o connect -DBIND_8_COMPAT=1
作成した connect コマンドを、環境変数 PATH に含まれているディレクトリにコピーします。 csh / tcsh 利用者は、コピー後に rehash コマンドを実行しておきましょう。
外部ホスト host.example.co.jp に接続するには、 $HOME/.ssh/config ファイルに、次のように書きます。
Host host.example.co.jp ProxyCommand connect -S socks.st.ryukoku.ac.jp -5 %h %p
ssh host.example.co.jp を実行して、接続してください。
なお、Windows 用の ssh クライアントソフトである PuTTY (日本語ターミナルを利用したい場合は PuTTY で ISO 2022 による日本語入力・表示を可能にするパッチやPuTTY ごった煮版を利用する) や Mac OS 用の ssh クライアントソフト MacSSH (こちらは標準で日本語に対応している) には設定ダイアログ中に socks サーバーを指定する部分がありますので、そこに socks5 サーバー socks.st.ryukoku.ac.jp を指定すればうまくいくはずです。 PuTTY + 日本語入力・表示パッチでは、次の設定になります。
追記:
BSD 系 UNIX に付属する netcat (nc) コマンドは、 connect コマンドのかわりに使えるようです。
SOCKSプロキシを経由したAzure VNETプライベートリソースへのアクセス (Unofficialism)
OpenSSH 5.4 以降なら ssh -W を使う方法があるようです。 この場合、socks サーバーではなく rins.st.ryukoku.ac.jp のようなゲートウェイコンピューターを経由することになります。
OpenSSH のNetcat modeを使う (タイムインターメディア)