アクセスしたいマシンに直接SSHできず,別のマシンに一旦入ってからアクセスしているそこのあなた.朗報です.ちょっとプログラムをmakeして,.ssh/configファイルを設定するだけで,直接SSHできるようになります!!
まあ,大げさに言っているけど,
実践で学ぶ、一歩進んだサーバ構築・運用術(前編・中篇)で
http://www.gcd.org/sengoku/docs/NikkeiLinux00-12/config.ja.html
http://www.gcd.org/sengoku/docs/NikkeiLinux01-01/telnet.ja.html
で,telnet/webプロキシを設定してるけど,それのSSH版みたいなもの.
ポートフォワードすれば,いいジャンとか聞こえてきそうですが(^^;
まあ,これだと事前にプログラムを実行しなければならないから,ちょっと面倒...
そこで,Proxycommand でポートフォワードして,そこをプロキシ代わりに使えないかなと
思ったわけですが,perlのスクリプト書かないとちょっと無理そうだし.すでに動いているか調べたり
しないといけないしね.
とにかく,ssh と netcat コマンド使って,簡単にやっちゃいましょう
え”,netcat って知らない?
でびあんゆーざなら
apt-get install netcat
じゃなかったら,
http://netcat.sourceforge.net/download.php
こっから,ダウンロードしてコンパイルして.
そこ,telnetでsmtpたたいている人!!
telnet よりもnc(netcat)コマンドのほうが便利ですよ
ちょっとそれたけど,とりあえず Proxycommand の使い方から...
client$ ssh gw gw$ ssh host
とか
client$ ssh -t gw ssh host
とか,やっているなら,gwにncが入っている前提だけど
client$ ssh -o'Proxycommand=ssh -T gw nc host 22' host
とすると,Proxycommand と netcat がちゃんと機能しているか確認できる
ちなみに
client$ ssh -o'Proxycommand=ssh -T gw nc host 22' hoge
としても,hostにアクセスできちゃいます.
それで,接続できることを確認したら,
~/.ssh/config OR /etc/ssh/ssh_config ファイルに
ホストの設定を書く.
たとえば,
Host gw Hostname xxx.xxx.xxx.xxx Host host HOstname 192.168.0.100 Proxycommand ssh -T gw nc %h %p
とかすれば,
client$ ssh host
でアクセスできるようになる