ssht というものを作ってみた

SSHでのポートフォワードを補助するスクリプトを書いて,Google code を使う練習も兼ねて,http://code.google.com/p/ssht/にアップしてみた.

SSHはもちろん,もともとポートフォワードができるのだけど幾つか問題がある.

  • 動的にフォワーディングを追加・削除することができない.
  • ポート番号をユーザが指定する必要がある.とくにリモートの場合,これはそれほど簡単ではない.
  • リモートからのフォワーディングは,デフォルトでは,loopbackアドレスに対してからしかできない.これを変更するにはサーバ側のconfigurationを変更する必要がある.

このスクリプトを使うと,この問題が解決する.

SSHごしに pythonを使う

このスクリプトはサーバ側の設定を必要としない.サーバに対してsshpythonインタプリタを起動し,自分自身のコピーをインタプリタへの入力として送信し,サーバとして起動している.この技術はいろいろ使いどころがありそうだ.ポイントは,

  • サーバ側のpythonを -i つきで起動.
  • スクリプトのファイルを一つにしておく.
  • 関数,クラス定義内の余計な改行があるとインタプリタが発狂するので,送信するときに削除しておく.
  • トップレベルに複雑な式は書かない.

もっとちゃんとした方法でロードできればよいのだけど,手軽に使う分にはこれで十分.