Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux_faq:ssh_in_browser [2020/01/13 08:19] – [ShellInABox за nginx] adminlinux_faq:ssh_in_browser [2020/01/13 08:20] (current) admin
Line 1: Line 1:
 +====== SSH In Browser Using WebRTC ======
 +https://sqs.io/
 +
 +
 +====== ShellInABox ======
 +Иногда нужно иметь доступ к консоли из web-браузера.
 +Для этого есть много решений. Одно из них - **shellinabox**.
 +Старая неподдерживаемая версия: https://code.google.com/p/shellinabox/   она есть в репозиториях ubuntu.
 +Текущая поддерживаемая: https://github.com/shellinabox/shellinabox
 +
 +Будем собирать текущую:
 +<code>sudo apt-get install git libssl-dev libpam0g-dev zlib1g-dev dh-autoreconf 
 +git clone https://github.com/shellinabox/shellinabox.git && cd shellinabox
 +autoreconf -i
 +./configure && make
 +dpkg-buildpackage -b
 +</code>
 +
 +Если встречается ошибка:
 +   undefined reference to `SSL_CTX_set_options'
 +То нужно переустановить старую версию **libssl-dev** и пересобрать:
 +  sudo apt-get -y install libssl1.0-dev
 +  ./configure && make
 +  dpkg-buildpackage -b -d
 +
 +И потом ставить:
 +
 +<code>sudo dpkg -i ../shellinabox_{ver}_{arch}.deb</code>
 +
 +После установки **shell** доступен по адресу: https://___SERVER_IP___:4200
 +Демон запускается скриптом: **/etc/init.d/shellinabox**
 +Конфигурационный файл лежит тут:  **/etc/default/shellinabox**
 +Описание возможных параметров запуска доступны тут: https://github.com/shellinabox/shellinabox/wiki/shellinaboxd_man
 +
 +
 +===== ShellInABox за haproxy =====
 +Мне было необходимо, чтобы **shellinabox** работал на страничке типа https://site.name/sh/
 +
 +**/etc/haproxy/haproxy.cfg**
 +<code>frontend http
 +   mode http
 +   bind *:80
 +   use_backend sh if { path_beg -i /sh }
 +   
 +   
 +   backend sh
 +   mode http
 +   server local_host localhost:4200
 +</code>
 +
 +===== ShellInABox за nginx =====
 +<code>
 +server {                                                                                                                                                                                                                                                     
 +    listen 443;                                                                                                                                                                                                                                              
 +    server_name server.name;                                                                                                                                                                                                                              
 +    client_max_body_size 1024M;                                                                                                                                                                                                                              
 +    ssl on;                                                                                                                                                                                                                                                  
 +    ssl_certificate /etc/ssl/certs/server.crt;                                                                                                                                                                                                              
 +    ssl_certificate_key /etc/ssl/private/server.key                                                                                                                                                                                                                                                                                                                                                                                                 
 +    ssl_session_timeout 360m;                                                                                                                                                                                                                                
 +    ssl_protocols SSLv3 TLSv1;                                                                                                                                                                                                                               
 +    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;                                                                                                                                                                                   
 +    ssl_prefer_server_ciphers on;                                                                                                                                                                                                                            
 +    location / {                                                                                                                                                                                                                                             
 +        proxy_pass http://127.0.0.1:5000;                                                                                                                                                                                                                    
 +        proxy_read_timeout 600s;
 +    }
 +    location /sh {
 +        proxy_pass http://127.0.0.1:4200/sh;
 +        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://$host$request_uri;                                                                                                                                                                                                                    
 +}                                                                                                                                                                                                                                                            
 +    </code>
 + 
 +===== /etc/default/shellinabox =====
 +<code>
 +# Should shellinaboxd start automatically
 +SHELLINABOX_DAEMON_START=1
 +
 +# TCP port that shellinboxd's webserver listens on
 +SHELLINABOX_PORT=4200
 +
 +# Parameters that are managed by the system and usually should not need
 +# changing:
 +# SHELLINABOX_DATADIR=/var/lib/shellinabox
 +# SHELLINABOX_USER=shellinabox
 +# SHELLINABOX_GROUP=shellinabox
 +
 +# Any optional arguments (e.g. extra service definitions).  Make sure
 +# that that argument is quoted.
 +#
 +#   Beeps are disabled because of reports of the VLC plugin crashing
 +#   Firefox on Linux/x86_64.
 +SHELLINABOX_ARGS="--no-beep -s /sh/:SSH:localhost -t"
 +
 +</code>
 +
  
  • linux_faq/ssh_in_browser.txt
  • Last modified: 2020/01/13 08:20
  • by admin