sshpfw (SSHポートフォワードヘルパー)

sshpfwは SSHのポートフォワード機能を支援するためのツールで、 Ruby/GTKを使って書かれています。 起動すると 設定ファイルに従ってホストに対応するボタンが作られ、 そのボタンをおすと適当なオプション付きで当該ホストにログインします。 もう一度同じボタンをおすと接続が切られます。

なんらかの原因によって接続が切れると、 そのホストに対応するボタンがおす前の状態に戻ります。 ちなちにSSH接続が生きているかどうかの確認を自前で(も)やっていますので、 ボタンの状態はある程度現実を反映するようになっているはずです。

設定ファイル

sshpfwは設定ファイル~/.sshpfwrcを読みます。 このファイルがないと(現状では)エラーになります。

設定ファイルの書式はこうです:

local-port  [remote-host]:remote-port  [login-host  [options]]

一行に一エントリを書きます。各フィールドの意味はこうです:

local-port
自ホスト側のポート番号です。(現状では)数値で指定します。
remote-host
ポートフォワード先のホスト名です。省略可能で、 省略するとlogin-hostが指定されたとみなされます。
remote-port
ポートフォワード先のポート番号です。(現状では)数値で指定します。
login-host
SSHでログインするホスト名です。省略可能で、 省略した場合には直前のlogin-hostの値が 指定されたものとみなされます。
options
ホートフォワード関係以外で指定したいオプションがあったら それを書くことができます。

また以下のように書くこともできます:

-  -  login-host  [options]

この場合、ポートフォワード関係の設定はなされませんが、 ホストに対応するボタンは作られます。 ポートフォワード関係の設定を~/.ssh/configに 書いている場合などに有効でしょう(逆に言うと~/.ssh/config などで設定してない場合にこのような設定をしても無意味ということです)。

サンプル

10025 :25  foo.example.com
10110 :110
20143 :143 foo.example.jp
20025 :25
-     -    bar.example.jp

以上の設定によって以下のような3つのボタンが作られます。

  1. オプション -L10025:foo.example.com:25 -L10110:foo.example.com:110 を指定して SSHでfoo.example.comにログインするためのボタン。
  2. オプション -L20143:foo.example.jp:143 -L20025:foo.example.jp:25 を指定して SSHでfoo.example.jpにログインするためのボタン。
  3. オプションを指定せずに SSHでbar.example.jpにログインするためのボタン。

バグ

現状、Ruby 1.6を使っている場合に、 接続中に端末からC-cで割り込みを入れると かなり確実にSEGVしますが、これはptyライブラリのバグです。 CVS版では修正されています。

TODO

RWiki上の sshpfwのページを参照してください。

ダウンロード

安定版
まだありません。
開発版
sshpfw.rb
現在、おおはばに書き直し中です。 書き直し終って、ある程度のテストができたら バージョン0.1として公開するつもりでいます。

[Powerd by Ruby!] Powered by webmasters, Debian, Walrus, Ruby and Vine Caves.
Copyright (c) 2001 akira yamada <akira@ruby-lang.org>. All rights reserved.