Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
linux_faq:ssh_in_browser [2020/01/13 08:18] – [ShellInABox за haproxy] admin | linux_faq:ssh_in_browser [2020/01/13 08:20] (current) – admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== SSH In Browser Using WebRTC ====== | ||
+ | https:// | ||
+ | |||
+ | |||
+ | ====== ShellInABox ====== | ||
+ | Иногда нужно иметь доступ к консоли из web-браузера. | ||
+ | Для этого есть много решений. Одно из них - **shellinabox**. | ||
+ | Старая неподдерживаемая версия: | ||
+ | Текущая поддерживаемая: | ||
+ | |||
+ | Будем собирать текущую: | ||
+ | < | ||
+ | git clone https:// | ||
+ | autoreconf -i | ||
+ | ./configure && make | ||
+ | dpkg-buildpackage -b | ||
+ | </ | ||
+ | |||
+ | Если встречается ошибка: | ||
+ | | ||
+ | То нужно переустановить старую версию **libssl-dev** и пересобрать: | ||
+ | sudo apt-get -y install libssl1.0-dev | ||
+ | ./configure && make | ||
+ | dpkg-buildpackage -b -d | ||
+ | |||
+ | И потом ставить: | ||
+ | |||
+ | < | ||
+ | |||
+ | После установки **shell** доступен по адресу: | ||
+ | Демон запускается скриптом: | ||
+ | Конфигурационный файл лежит тут: | ||
+ | Описание возможных параметров запуска доступны тут: https:// | ||
+ | |||
+ | |||
+ | ===== ShellInABox за haproxy ===== | ||
+ | Мне было необходимо, | ||
+ | |||
+ | **/ | ||
+ | < | ||
+ | mode http | ||
+ | bind *:80 | ||
+ | | ||
+ | |||
+ | |||
+ | | ||
+ | mode http | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== ShellInABox за nginx ===== | ||
+ | < | ||
+ | server { | ||
+ | listen 443; | ||
+ | server_name server.name; | ||
+ | client_max_body_size 1024M; | ||
+ | ssl on; | ||
+ | ssl_certificate / | ||
+ | ssl_certificate_key / | ||
+ | ssl_session_timeout 360m; | ||
+ | ssl_protocols SSLv3 TLSv1; | ||
+ | ssl_ciphers ALL: | ||
+ | ssl_prefer_server_ciphers on; | ||
+ | location / { | ||
+ | proxy_pass http:// | ||
+ | proxy_read_timeout 600s; | ||
+ | } | ||
+ | location /sh { | ||
+ | proxy_pass http:// | ||
+ | access_log off; | ||
+ | proxy_redirect default; | ||
+ | proxy_set_header Host $host; | ||
+ | proxy_set_header X-Real-IP $remote_addr; | ||
+ | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
+ | client_max_body_size 10m; | ||
+ | client_body_buffer_size 128k; | ||
+ | proxy_connect_timeout 90; | ||
+ | proxy_send_timeout 90; | ||
+ | proxy_read_timeout 90; | ||
+ | proxy_buffer_size 4k; | ||
+ | proxy_buffers 4 32k; | ||
+ | proxy_busy_buffers_size 64k; | ||
+ | proxy_temp_file_write_size 64k; | ||
+ | } | ||
+ | server { | ||
+ | listen 80; | ||
+ | server_name server.name; | ||
+ | return 301 https:// | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== / | ||
+ | < | ||
+ | # Should shellinaboxd start automatically | ||
+ | SHELLINABOX_DAEMON_START=1 | ||
+ | |||
+ | # TCP port that shellinboxd' | ||
+ | SHELLINABOX_PORT=4200 | ||
+ | |||
+ | # Parameters that are managed by the system and usually should not need | ||
+ | # changing: | ||
+ | # SHELLINABOX_DATADIR=/ | ||
+ | # SHELLINABOX_USER=shellinabox | ||
+ | # SHELLINABOX_GROUP=shellinabox | ||
+ | |||
+ | # Any optional arguments (e.g. extra service definitions). | ||
+ | # that that argument is quoted. | ||
+ | # | ||
+ | # Beeps are disabled because of reports of the VLC plugin crashing | ||
+ | # | ||
+ | SHELLINABOX_ARGS=" | ||
+ | |||
+ | </ | ||
+ | |||