sshpfwは
SSHのポートフォワード機能を支援するためのツールで、
Ruby/GTKを使って書かれています。
起動すると 設定ファイルに従ってホストに対応するボタンが作られ、
そのボタンをおすと適当なオプション付きで当該ホストにログインします。
もう一度同じボタンをおすと接続が切られます。
なんらかの原因によって接続が切れると、 そのホストに対応するボタンがおす前の状態に戻ります。 ちなちにSSH接続が生きているかどうかの確認を自前で(も)やっていますので、 ボタンの状態はある程度現実を反映するようになっているはずです。
sshpfwは設定ファイル~/.sshpfwrcを読みます。
このファイルがないと(現状では)エラーになります。
設定ファイルの書式はこうです:
local-port [remote-host]:remote-port [login-host [options]]
一行に一エントリを書きます。各フィールドの意味はこうです:
local-portremote-hostlogin-hostが指定されたとみなされます。remote-portlogin-hostlogin-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つのボタンが作られます。
-L10025:foo.example.com:25 -L10110:foo.example.com:110
を指定して
SSHでfoo.example.comにログインするためのボタン。-L20143:foo.example.jp:143 -L20025:foo.example.jp:25
を指定して
SSHでfoo.example.jpにログインするためのボタン。bar.example.jpにログインするためのボタン。現状、Ruby 1.6を使っている場合に、
接続中に端末からC-cで割り込みを入れると
かなり確実にSEGVしますが、これはptyライブラリのバグです。
CVS版では修正されています。
RWiki上の sshpfwのページを参照してください。