Email: Takayama Fumihiko <tekezo@pqrs.org>

connect.c と ssh を使って、あらゆるサーバに透過的に踏み台リモートアクセス

connect.c と ssh を使って、あらゆるサーバに透過的に踏み台リモートアクセス

特定のネットワークからしか SSH 接続を許可されていないサーバに対して、 簡単に ssh ログインを行う方法です。

踏み台サーバにログインしてから再度 ssh とかだと面倒ですよね。

そんなときに SSH に付属の SOCKS proxy 機構と connect.c を用いると簡単に解決が出来ます。
netcat を使うと更に簡単に接続が出来ます。(通りがかりさんありがとうございます)

netdiag1.png

[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)