Как получить доступ к 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 через веб-интерфейс браузера.
Свежие комментарии