Браузер как SSH-клиент

Встала потребность в подключении к терминалу сервера через браузер. SSH безусловно прекрасный протокол, но преграды ему чинят разного рода мобильные девайсы и прокси-серверы.

В качестве веб-клиентов для ssh рассматривались Ajaxterm, Anyterm, WebShell и Shell in a Box. Наиболее быстродействущим и адекватным оказался Shell in a Box. Далее привожу пример установки для Debian/Ubuntu.

Установим зависимости

root@localhost:~$ apt-get install debhelper libpam0g-dev libssl-dev subversion

Получаем исходные коды:

root@localhost:~$ svn checkout http://shellinabox.googlecode.com/svn/trunk/ /usr/src/shellinabox

Собираем и устанавливаем пакеты

root@localhost:~$ cd /usr/src/shellinabox
root@localhost:~$ dpkg-buildpackage
root@localhost:~$ dpkg -i /usr/src/shellinabox_*.deb

В принципе этого достаточно. Можно открывать в браузере http://localhost:4200.

Если на машине присутствует веб-сервер, можно настроить доступ к консоли через него, как алиас вида https://mydomain.com/shell/. Так, если это Apache, потребуются mod_proxy и mod_proxy_http.

root@localhost:~$ a2enmod proxy
root@localhost:~$ a2enmod proxy_html

В конфиг сервера/виртуального хоста нужно добавить:

ProxyRequests Off

Order deny,allow
Allow from all

ProxyPass http://localhost:4200/
ProxyPassReverse http://localhost:4200/

Перезапускаем веб-сервер.

root@localhost:~$ apache2ctl graceful