connect.c と ssh を使って、あらゆるサーバに透過的に踏み台リモートアクセス
■ connect.c と ssh を使って、あらゆるサーバに透過的に踏み台リモートアクセス
特定のネットワークからしか SSH 接続を許可されていないサーバに対して、 簡単に ssh ログインを行う方法です。
踏み台サーバにログインしてから再度 ssh とかだと面倒ですよね。
そんなときに SSH に付属の SOCKS proxy 機構と connect.c を用いると簡単に解決が出来ます。
netcat を使うと更に簡単に接続が出来ます。(通りがかりさんありがとうございます)

■ [netcat] 設定方法
nc コマンドがインストールされていることを確認します。
あとは ~/.ssh/config に以下の設定を追加します。
Host target-server ProxyCommand ssh base-server nc %h %p
後は普通に target-server へ SSH 接続が可能となります。
% slogin target-server
SOCKS & connect を使う場合
■ [SOCKS & connect] 上記図の場合の事前準備
事前準備は client マシン上のみで OK。
まず connect.c のソースコード を落してきて、コンパイルします。
コンパイル方法はソースコードの頭のほうに書いてあるので、環境に合わせてコマンドを実行しましょう。
% gcc connect.c -o connect % install -m 755 connect /usr/local/bin
あとは ~/.ssh/config に以下の設定を追加します。
Host target-server
ProxyCommand connect -s -S localhost -5 %h %p
■ [SOCKS & connect] 実際に接続
client マシンから base server へ以下のように ssh 接続を行います。
% ssh -N -D 1080 base-server &
後は普通に target-server へ SSH 接続が可能となります。
% slogin target-server
もちろん SSH 越しの rsync 等も動作可能!
■ 参考リンク
Comments for This Page. Date: 2007-07-22 18:22 (JST)