AjaxTerm - ajaxを使ってブラウザからLinuxへログイン

MoonGiftで紹介されていたAjaxTermをDebian(Etch) Linuxが動いているサーバマシンに導入しました。
外からでもふとした瞬間に操作できるので快適です。
MoonGift:http://www.moongift.jp/2006/04/1493/
公式サイト:http://antony.lesuisse.org/qweb/trac/wiki/AjaxTerm

DebianにはAjaxTermのパッケージがあるので以下のコマンドで導入できます。

apt-get install ajaxterm

あとは、Apache経由で外部に公開するために、Apachehttpd.confに以下Proxy設定を追加します。
ちなみに、ajaxtermはDebianでは標準で8022ポートで動作しています。これをApacheのパスに紐付けてやるのが以下の設定です。

ProxyPass /ajaxterm/ http://localhost:8022/
ProxyPassReverse /ajaxterm/ http://localhost:8022/

libproxyを有効にしていない場合は以下コマンドを実行して有効化する必要があります。

apache-modconf apache enable libproxy

追加で、基本認証もつけてみました。本当はSSL化などした方がよいとは思います。
基本的に安心できないところからのアクセスは控えましょう。


Order allow,deny
Allow from all
AuthType Basic
AuthName "ajaxterm session"
AuthUserFile /home/.htpasswd
require valid-user

通常は以上で完了です。
ここからが自分がはまったところ。
ajaxtermは内部でSSHを使用しているので、SSHポートをデフォルトとは違うポートにしていると

Login:

という画面から先に進めません。入力はできるけど、Enterするとまた「Login:」にもどってしまうという問題です。
仕方がないので、ajaxterm.pyのソースを読んでみて以下の箇所を修正することで問題解決できました。
ajaxterm.py

・・・(略)・・・
cmd=['ssh']
cmd+=['-oPreferredAuthentications=keyboard-interactive,password']
cmd+=['-oNoHostAuthenticationForLocalhost=yes']
cmd+=['-oLogLevel=FATAL']
cmd+=['-F/dev/null','-l',login,'localhost']
・・・(略)・・・

上記を下記に変更

・・・(略)・・・
cmd=['ssh']
cmd+=['-pポート番号']
cmd+=['-oPreferredAuthentications=keyboard-interactive,password']
cmd+=['-oNoHostAuthenticationForLocalhost=yes']
cmd+=['-oLogLevel=FATAL']
cmd+=['-F/dev/null','-l',login,'localhost']
・・・(略)・・・

セキュリティリスクを多少なりとも減らせるということで、ポートを変更している人は意外といるかもしれません。
そんな方のお役にたてば、と思います。
本来なら、/etc/ssh/sshd_configから「Port 〜」を取ってきてajaxtermで使えるようにするのが良いのかも。
Pythonわかる人に期待します。