外部の SSH サーバーに接続する方法

Last modified: Wed Apr 5 20:24:29 2017 +0900 (JST)


概要

 龍谷大学ではファイアウォールを構築している関係上、 学内のホストから直接 ssh で学外のホストに接続することはできません。

 この問題を回避するには、socks サーバーを経由して ssh 通信を行う方法があります。

socks サーバー

 理工学部では、次の socks サーバーを稼働させています。

 情報メディアセンターでは socks サーバーを運用していないようです。

socks サーバー経由で学外のホストに ssh 接続する

 以下では ssh 実装のひとつ、OpenSSH 2.x 以降を利用する場合の例を示します。 OpenSSH は、Linux や FreeBSD をはじめとする PC-UNIX には標準で塔載されています。 また、ソースコードからコンパイルすることで Solaris や HP-UX でも利用できる他、コンパイル済みのバイナリーを配布しているサイトも複数あります。 Google などで検索してみてください。

  1. connect.c を入手します。

  2. 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
  3. 作成した connect コマンドを、環境変数 PATH に含まれているディレクトリにコピーします。 csh / tcsh 利用者は、コピー後に rehash コマンドを実行しておきましょう。

  4. 外部ホスト host.example.co.jp に接続するには、 $HOME/.ssh/config ファイルに、次のように書きます。

    Host host.example.co.jp
      ProxyCommand connect -S socks.st.ryukoku.ac.jp -5 %h %p
          
  5. ssh host.example.co.jp を実行して、接続してください。

 なお、Windows 用の ssh クライアントソフトである PuTTY (日本語ターミナルを利用したい場合は PuTTY で ISO 2022 による日本語入力・表示を可能にするパッチPuTTY ごった煮版を利用する) や Mac OS 用の ssh クライアントソフト MacSSH (こちらは標準で日本語に対応している) には設定ダイアログ中に socks サーバーを指定する部分がありますので、そこに socks5 サーバー socks.st.ryukoku.ac.jp を指定すればうまくいくはずです。 PuTTY + 日本語入力・表示パッチでは、次の設定になります。

Proxy のタイプ: SOCKS、Proxy ホスト: socks.st.ryukoku.ac.jp、ポート: 1080

 追記:


RINS WWW Administrator <[email protected]>