Select Page

Как получить доступ к SSH терминалу в веб-браузере на Linux

Как получить доступ к SSH терминалу в веб-браузере на Linux

Как получить доступ к SSH терминалу в веб-браузере на Linux

01.10.2013 14:17

Если кто-то заявляет, что в веб-браузере можно запустить все-все, то это, мягко говоря, смелое заявление. Однако, благодаря мощному стека HTML5/JavaScript, веб-браузер становится более доминирующей платформой поставки приложений. Даже Linux kernel sandboxed in a web browser больше не звучит настолько сумасшедше в эти дни.

В этом уроке я расскажу, как получить доступ SSH терминала в веб-браузере на Linux. Web-базы на SSH это используются, когда брандмауэр, где вы находитесь, имеет такие ограничения, что только HTTP(s) трафик может пройти.

Shell In A Box (или shellinabox ) – это веб-эмулятор терминала, который может работать как веб-клиент SSH. Он поставляется с собственным веб-сервером (shellinaboxd), который экспортирует оболочку командной строки для веб-эмулятора терминала через интерфейс AJAX. Для Shell In a Box нужно только JavaScript/CSS поддержка через веб-браузер, и не требуется никаких дополнительных плагинов браузера.

Установите Shell In a Box на Linux

Чтобы установить shellinabox на Debian, Ubuntu или Linux Mint:

$ sudo apt-get install openssl shellinabox

Чтобы установить shellinabox на Fedora:

$ sudo yum install openssl shellinabox

Чтобы установить shellinabox на CentOS или RHEL, сначала включите EPEL repository, а затем запустите:

$ sudo yum install openssl shellinabox

Настройка веб-сервера Shellinaboxd

По умолчанию shellinaboxd веб-сервер прослушивает порт TCP 4200 на локальной системе. В этом уроке я могу изменить порт по умолчанию 443 для HTTPS. Для этого нужно модифицировать shellinabox конфигурации следующим образом.

Настройка shellinaboxd на Debian, Ubuntu или Linux Mint:

$ sudo vi /etc/default/shellinabox
# TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=443

# specify the IP address of a destination SSH server
SHELLINABOX_ARGS="--o-beep -s /:SSH:192.168.1.7"

# if you want to restrict access to shellinaboxd from localhost only
SHELLINABOX_ARGS="--o-beep -s /:SSH:192.168.1.7 --localhost-only"

Настройка shellinaboxd на Fedora, CentOS или RHEL:

$ sudo vi /etc/sysconfig/shellinaboxd
# TCP port that shellinboxd's webserver listens on
PORT=443

# specify the IP address of a destination SSH server
OPTS="-s /:SSH:192.168.1.7"

# if you want to restrict access to shellinaboxd from localhost only
OPTS="-s /:SSH:192.168.1.7 --localhost-only"

Хедс-ап для пользователей Fedora: В соответствии с официальным документом, некоторые операции могут не работать из бокса, когда вы запускаете shellinaboxd SELinux в режим Fedora. Обратитесь к документу, если у вас возникли проблемы.

Обеспечение Self-Signed Certificate

Во время установки Shell In A Box, shellinaboxd попытается создать новый собственный сертификат (certificate.pem) с помощью /usr/bin/openssl, если не найдет подходящего сертификата на вашем Linux. Созданный сертификат будет находится в /var/lib/shellinabox.

Если сертификата не будет в каталоге, вы можете создать его самостоятельно следующим образом.

$ su (change to the root)
# cd /var/lib/shellinabox
# openssl genrsa -des3 -out server.key 1024
# openssl req -new -key server.key -out server.csr
# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
# cat server.crt server.key > certificate.pem

Запуск веб-сервера Shellinaboxd

На Debian, Ubuntu или Linux Mint:

$ sudo service shellinabox start

На Fedora, CentOS или RHEL:

$ sudo systemctl enable shellinaboxd.service
$ sudo systemctl start shellinaboxd.service

Для проверки, работает ли shellinaboxd:

$ sudo netstat -nap | grep shellinabox
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      4787/shellinaboxd

Теперь откройте веб-браузер и перейдите к https://. Вы должны увидеть веб-консоль SSH и войти на удаленный сервер SSH через веб-интерфейс браузера.

About The Author

Leave a reply

Ваш адрес email не будет опубликован.