とってもいけてる感じでイイ!
ただ、セキュリティ的にどうなんだろう?要検証。
普段、踏み台サーバーを使用する場合にsshポート転送は-Lオプションを使っていましたが、もっと楽な方法がありました。
たとえばこんなルートの場合。
clientー>hostA(鍵)ー>hostB(鍵)
hostBにsshやらsvnやらhttpやらを転送するのに、
(http)localhost:8080
(ssh)localhost:8081
(svn)localhost:8082
こんだけつくらないといけないし、多くなってくるとどのポートがどこにつながっているかわかり難い。アプリケーションによっては、わざわざlocalhost:portでアクセスしなきゃならない。
こんな面倒なsshトンネルを、すごく簡単に管理しやすいことを知りました。
ssh -D
これすげぇ。
下記はmacで設定したことです。
sudo port install tsocks
sudo cp /opt/local/etc/tsocks.conf.example /opt/local/etc/tsocks.confsudo vi /opt/local/etc/tsocks.conf
# We can access 192.168.0.* directly
#local = 192.168.1.0/255.255.255.0
#local = 127.0.0.1# Otherwise we use the server
#server = 192.168.0.1
server = localhost
server_type = 5
server_port = 1080
sshで接続。-Lじゃなくて-Dオプションを使用します。鍵認証がいいです。
ssh -D 1080 username@hostA -i keyfile -N
ブラウザからSOCKSプロキシ経由でみる。safariならプロキシ設定で、SOCKSプロキシをチェック。localhost:1080で設定。
ブラウザからは普通に、http://google.co.jpとかでhostA経由のアクセスになるのでなんだかVPNっぽい感じ。
ほかにもsshでhostBにログインとかも一発でいけたり。
vi .ssh/remote_ssh.sh
#!/bin/sh
ssh username@hostB -p 10022 -i private.key
こんなファイルつくって、
cd .ssh
tsocks ./remote_ssh.sh
こんな感じでアクセスできる。
べつにファイル作らなくても、
tsocks ssh username@hostB -p 10022 -i /path/to/dir/keyfile
でOK。
svnとかも何にも設定は変えずに、
toscks svn co svn+ssh://hostB/svn/hoge hoge
tsocks svn up
tsocks svn ci test.txt
でいけた。
すげぇ!