Linux – Terminal via web

Um titulo um tanto quanto estranho, porém que vai mudar a vida do SysAdmin que estiver lendo isso.
Vamos ao caso:

Nem sempre eu me encontro no computador e quase sempre que estou em algum departamento mais distante ou que eu vá demorar para voltar a minha sala pedem algo com urgência para ser feito, e eu não gosto de acessar via SSH de qualquer computador quanto menos usar softwares como PuTTY, então pesquisei por algo que emulasse ou disponibilizasse um terminal *nix no browser para que de qualquer local da rede eu pudesse acessar.
Então encontrei o shellinabox, deve existir outras alternativas mas esta se encaixou perfeitamente e adotei ela como solução, agora vamos ao procedimento de instalação.

Acesso o site do projeto http://code.google.com/p/shellinabox/ e baixe a versão para 32bits ou 64bits.

cleiton@linuxVM:~$ cd /usr/src/
cleiton@linuxVM:/usr/src$ sudo wget http://shellinabox.googlecode.com/files/shellinabox_2.10-1_i386.deb

Ok, agora vamos instalar:

cleiton@linuxVM:/usr/src$ sudo dpkg -i shellinabox_2.10-1_i386.deb
Selecionando pacote previamente não selecionado shellinabox.
(Lendo banco de dados ... 217337 ficheiros e directórios actualmente instalados.)
Desempacotando shellinabox (de shellinabox_2.10-1_i386.deb) ...
Configurando shellinabox (2.10-1) ...
* Starting Shell In A Box Daemon shellinabox [ OK ]
Processando gatilhos para ureadahead ...
Processando gatilhos para man-db ...
cleiton@linuxVM:/usr/src$

Na teoria já esta instalado e o serviço shellinaboxd rodando, no meu caso na VM que estou usando para escrever este post e na empresa não funcionou de primeira, tive que modificar o arquivo de configuração do shellinabox como abaixo, além é claro de você ter que liberar a porta 4200 (default) no firewall para funcionar.

cleiton@linuxVM:~$ sudo /etc/init.d/shellinabox stop
cleiton@linuxVM:~$ cat /etc/default/shellinabox
# Should shellinaboxd start automatically
SHELLINABOX_DAEMON_START=1

# TCP port that shellinboxd's webserver listens on
#SHELLINABOX_PORT=4200
SHELLINABOX_PORT=4722

# 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)
# We disable beeps, as there have been reports of the VLC plugin crashing
# Firefox on Linux/x86_64.
SHELLINABOX_ARGS=--no-beep

cleiton@linuxVM:~$ sudo /etc/init.d/shellinabox start

No default as linhas 12,13 e 14 estaram comentadas, descomente e salve o arquivo, no caso a porta default é 4200 como esta porta esta em uso aqui eu troquei pela 4722, ae é subir o serviço e testar.

terminalweb01

terminalweb02terminalweb03

Mas algo me incomodou como um bom e velho usuário do mundo *nix, que é o fundo do terminal (rs). Pois é eu queria o fundo preto, então fuçando encontrei o arquivo /etc/shellinabox/options-available/README que comenta o seguinte, no diretório /etc/shellinabox/options-available/ encontra-se os arquivos .css que o serviço utiliza, e os arquivo com + são os ativos e os _ são desabilitados ou ignorados pelo serviço.

cleiton@linuxVM:~$ ls -l /etc/shellinabox/
total 8
drwxr-xr-x 2 root root 4096 2013-12-18 18:48 options-available
drwxr-xr-x 2 root root 4096 2013-12-18 18:48 options-enabled
cleiton@linuxVM:~$ ls -l /etc/shellinabox/options-available/
total 16
-rw-r--r-- 1 root root 0 2009-11-21 21:56 00+Black on White.css
-rw-r--r-- 1 root root 350 2009-11-21 21:56 00_White On Black.css
-rw-r--r-- 1 root root 1910 2009-11-21 21:56 01+Color Terminal.css
-rw-r--r-- 1 root root 1401 2009-11-21 21:56 01_Monochrome.css
-rw-r--r-- 1 root root 819 2009-11-21 21:56 README
cleiton@linuxVM:~$ ls -l /etc/shellinabox/options-enabled/
total 4
lrwxrwxrwx 1 root root 42 2013-12-18 18:48 00+Black on White.css -> ../options-available/00+Black on White.css
lrwxrwxrwx 1 root root 42 2013-12-18 18:48 00_White On Black.css -> ../options-available/00_White On Black.css
lrwxrwxrwx 1 root root 42 2013-12-18 18:48 01+Color Terminal.css -> ../options-available/01+Color Terminal.css
lrwxrwxrwx 1 root root 38 2013-12-18 18:48 01_Monochrome.css -> ../options-available/01_Monochrome.css
-rw-r--r-- 1 root root 189 2009-11-21 21:56 README
cleiton@linuxVM:~$

Então vamos trocar 00+Black on White.css para 00+White On Black.css e no anterior adicionar _, e é claro corrigir os links simbólicos de options-enabled e reiniciar o serviço.

cleiton@linuxVM:~$ ls -l /etc/shellinabox/options-available/
total 16
-rw-r--r-- 1 root root 0 2009-11-21 21:56 00_Black on White.css
-rw-r--r-- 1 root root 350 2009-11-21 21:56 00+White On Black.css
-rw-r--r-- 1 root root 1910 2009-11-21 21:56 01+Color Terminal.css
-rw-r--r-- 1 root root 1401 2009-11-21 21:56 01_Monochrome.css
-rw-r--r-- 1 root root 819 2009-11-21 21:56 README
cleiton@linuxVM:~$ ls -l /etc/shellinabox/options-enabled/
total 4
lrwxrwxrwx 1 root root 42 2013-12-18 19:25 00_Black on White.css -> ../options-available/00_Black on White.css
lrwxrwxrwx 1 root root 42 2013-12-18 19:26 00+White On Black.css -> ../options-available/00+White On Black.css
lrwxrwxrwx 1 root root 42 2013-12-18 18:48 01+Color Terminal.css -> ../options-available/01+Color Terminal.css
lrwxrwxrwx 1 root root 38 2013-12-18 18:48 01_Monochrome.css -> ../options-available/01_Monochrome.css
-rw-r--r-- 1 root root 189 2009-11-21 21:56 README
cleiton@linuxVM:~$ sudo /etc/init.d/shellinabox restart

Vamos acessar novamente.
terminalweb04

Espero que tenham gostado da dica.

Testes:

No firefox funcionou tudo belezinha se não fosse o detalhe que a tecla 0 que tem o – junto não funciona, do resto perfeito, no Internet Explorer funcionou normalmente no modo compatibilidade e no chrome sem problemas.

Até a próxima!

 

Referências

http://code.google.com/p/shellinabox/

Shell In A Box – A Web-Based SSH Terminal to Access Remote Linux Servers

Share Button

CC BY-NC-SA 4.0 Linux – Terminal via web by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.