OpenSSH Port Forward memo.

・ "proxy.3f.example.co.jp" は、社外からはアクセス出来ない linuxbox
・ "foo.example.com" は、自宅サーバ用 linuxbox
・ "fuga.4f.example.com" は、自宅LAN内にある端末
・ 社内で利用している proxy, ndtpd と、メンテ用の ssh を自宅LANからも利用したい。

◎ 会社 "proxy.3f.example.co.jp" の設定
~/.ssh/config に設定
Host foo.exapmle.com
User bar
RemoteForward 2200 127.0.0.1:22
RemoteForward 8080 127.0.0.1:8080
RemoteForward 15001 127.0.0.1:15001

# *
# 1024番以前のポートを利用する場合はroot権限が必要になるので、適当なポートに転送する。
# (もしくはrootでsshを利用する)
# *
# SSH ver.2 を使っている場合は ~/.ssh2/ssh2_config に設定するするが、RemoteForward
# 若しくは LocalForward の書式は以下の様になる。
# ~/.ssh2/ssh2_config
# RemoteForward 2200:127.0.0.1:22

proxy> slogin foo.example.com
(会社にいる間に foo.example.com にアクセスしておく)

◎ 自宅LAN "fuga.4f.example.com" の設定
~/.ssh/config に設定
Host foo.example.com
User bar
LocalForward 2200 127.0.0.1:2200
LocalForward 8080 127.0.0.1:8080
LocalForward 15001 127.0.0.1:15001

fuga> slogin foo.example.com

◎ fuga から "proxy.3f.example.co.jp" のサービスを利用する
ssh => slogin -l bar -p 2200 127.0.0.1
proxy =>127.0.0.1:8080
ndtpd => 127.0.0.1:15001


================== おまけ ==================

◎ SSH ver.2 の公開鍵を OpenSSH で利用する場合 (DSA鍵)
1. SSH の個人用公開鍵を OpenSSH を使っているホストに持って来て、以下を実行する
2. ssh-keygen -i -f ida_dsa_1024.pub >> ~/.ssh/authorized_keys

◎ OpenSSH の公開鍵を SSH ver.2 で利用する場合 (DSA鍵)
1. ssh-keygen -e -f ~/.ssh/id_dsa.pub > baz.pub
2. baz.pub を SSH ver.2 を使っているホストに持って行き、SSH ver.2
   を利用しているサーバで以下を実行する
3. mv baz.pub ~/.ssh2 ; chmod 600 ~/.ssh2/baz.pub
4. cd ~/.ssh2
5. echo "Key baz.pub" >> authorization

◎ SSH ver.2 で個人用秘密鍵を作成する
1. ssh-keygen -b 1024
-> ~/.ssh2 に id_dsa_1024_a (秘密鍵)  id_dsa_1024_a.pub (公開鍵)
   random_seed (乱数シード)が作成される
2. cd ~/.ssh2
3. echo "IdKey id_dsa_1024_a" >> identification (秘密鍵のファイル指定)
4. echo "Key id_dsa_1024_a.pub" >> authorization (公開鍵のファイル指定)

◎ OpenSSH で個人用秘密鍵(DSA鍵)の作成をする
1. ssh-keygen -t dsa
-> ~/.ssh の中に id_dsa(秘密鍵) id_dsa.pub(公開鍵)が作成される
2. cd ~/.ssh
3. cat id_dsa.pub >> authorized_keys
4. chmod 600 authorized_keys
5. 自分の公開鍵をリモートホストに持ってゆく。例えば id_dsa.pubをリモートホスト
   にbar.pubとしてコピーした場合、そのリモートホストにて以下を実行。
   cat bar.pub >> ~/.ssh/authorized_keys
6. これでリモートホストに対してパスフレーズでログイン出来るようになる

※ 注意点
・秘密鍵の作成中はランダムにキーボードやマウスの操作を行う
・パスフレーズは想定され辛い16〜32文字程度のものを利用する
・秘密鍵の管理は厳重に
・公開鍵をリモートホストにコピーする場合は、出来ることであればFD等のメディア
  を利用するなど、物理的なファイル移動の方が望ましい


2003年06月13日 作成
2003年06月17日 SSH ver.2に関する部分を追記
2005年12月12日 OpneSSH authorized_keys2 → authorized_keys に変更