tsocks, ssh dynamic port forwarding

とってもいけてる感じでイイ!

ただ、セキュリティ的にどうなんだろう?要検証。

普段、踏み台サーバーを使用する場合に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.conf

sudo 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

でいけた。

すげぇ!

広告

tsocks, ssh dynamic port forwarding」への1件のフィードバック

  1. ピンバック: tsocks, svn upとかでHost not found « RUNELEAF_LOG

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中