GoTTY – Compartilhe suas ferramentas de terminal Linux como uma aplicação web

tools

GoTTY é uma ferramenta simples que transforma o terminal Linux como uma aplicação web. Permitindo que qualquer ferramenta ou script de terminal Linux, que possa ter, venham a ser “transformadas” em aplicações web.

AUMENTE SUA PRODUTIVIDADE!
Crie e administre aplicações entre ambientes diferentes. Tenha agilidade e padronização na entrega dos serviços de TI. E, assim, ganhe tempo e seja eficiente na entrega desses serviços. Saiba como

Terminal Linux como uma aplicação web

O GoTTY usa o emulador de terminal hterm para executar um terminal baseado em JavaScript em navegadores web. Assim, ele fornece um servidor websocket que, simplesmente, transmite a saída do terminal (TTY) para os usuários na web. Desta maneira, você pode compartilhar e transformar as ferramentas do seu sistema Linux, ou algum programa via terminal, em aplicações web (veja a ferramenta em ação):

gotty-nano

Por padrão, o GoTTY não permite que os usuários, que usam o navegador web, enviem quaisquer comandos ou interações com o teclado; exceto o redimensionamento da janela do terminal. É possível que os usuários interajam com o terminal; desde que você permita! Contudo, aceitar a interação dos usuários remotos é perigoso para a maioria dos casos – permita com moderação 😉

Pode ser útil para mim?!

Esta ferramenta pode ser útil se você não quiser dar o acesso SSH a alguém, por exemplo. Basta saber qual a saída de comando que ele gostaria de ver, e executar esse comando em seu sistema local e permitir que ele veja em seu navegador web de qualquer lugar.

Ou, em um cenário acadêmico, onde precise disponibilizar ou exemplificar ferramentas de linha de comando para várias pessoas, simultaneamente. Ou pretende que outras pessoas editem o mesmo arquivo ou vejam arquivos de logs, por exemplo. Em resumo, você pode compartilhar qualquer comando Linux como uma aplicação web 😉

Mão na massa

AMBIENTE DE TESTES
Eu usei o openSUSE Tumbleweed para testar essa ferramenta. Não precisei instalar nenhum pacote como dependência. Acredito que na maioria das distribuições Linux também não precise 😉

Instalando

Faça o download, de um arquivo compactado, AQUI – conforme a arquitetura do seu sistema (32 ou 64 bits). No meu caso eu segui esses passos:

wget https://github.com/yudai/gotty/releases/download/pre-release/gotty_linux_amd64.tar.gz

Descompactar arquivo tar.gz:

tar zxvf gotty_linux_amd64.tar.gz

Pronto!!

Usando a ferramenta

AVISO
Todo o tráfego entre o servidor e os usuários NÃO são criptografados, por padrão.

O arquivo descompactado possui um arquivo binário chamado gotty. Para transformar as ferramentas do seu sistema Linux, ou algum programa via terminal, em aplicações web use os seguintes parâmetros:

gotty [options] [command>] [arguments…]

Assim, execute o gotty com seu comando preferido, com seus argumentos, e prossiga ao um navegador web. Por exemplo, caso queira ver os processos e recursos do seu sistema usamos o comando top:

./gotty top

Por padrão, o GoTTY inicia um servidor web na porta 8080. Abra a URL em seu navegador e verá o comando em execução como se estivesse sendo executado no seu terminal 😉

gotty-top

E mais… você pode compartilhar um arquivo editável pelo nano ou vim, por exemplo (primeira imagem como exemplo):

./gotty -w nano arquivo

Onde,

-w: Permite usuários interagirem no navegador web com o terminal do seu sistema (seja cuidadoso)

Além disso, o GoTTY permite estabelecer conexões seguras (TLS/SSL), desde que forneça os arquivos de certificados (–tls-crt, –tls-key e –tls-ca-crt) e permite que os usuários enviem parâmetros de execução diretamente pelo navegador web (http://example.com:8080/?arg=AAA&arg=BBB). Para mais funções, verifique a documentação oficial.

Por fim, alguns exemplos:

./gotty tail -f arquivo
./gotty du -h
./gotty nmap host
./gotty sh meuscript.sh

Questões de segurança

Para restringir o acesso de determinado usuário, você pode usar a opção -c para ativar uma autenticação básica. Com esta opção, os usuários precisam inserir o nome de usuário e a senha especificados para se conectarem ao servidor do GoTTY. Observe que as credenciais serão transmitidas entre o servidor e o usuário em texto plano (sem segurança). Para uma autenticação mais segura, considere um módulo de autenticação usando certificado SSL/TLS.

A opção -r é um pouco mais simples. Com esta opção, o GoTTY gera uma URL aleatória para que apenas as pessoas que conheçam a URL possam ter acesso ao servidor.

Para conexão segura (TLS/SSL), recomenda-se que você use a opção -t que habilita o TLS/SSL na sessão. Por padrão, o GoTTY carrega os arquivos crt e key colocados em ~/.gotty.crt e ~/.gotty.key. Você pode substituir esses caminhos de arquivo com as opções –tls-crt e –tls-key. Caso não tenha um certificado válido, você pode gerar um arquivo de certificado auto-assinado usando o openssl 😉

openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

Mais opções de customizações podem ser feitas em um arquivo que deve ser criado e localizado em ~/.gotty:

Modelo do arquivo de configuração AQUI.

Ricardo Ferreira

Ricardo Ferreira

Fundador do Linux Descomplicado - LD.

Sempre em busca de novos conhecimentos, preza por conteúdo de qualidade e auto-explicativo. Por isso, persiste em criar um site com artigos relevantes para todos os leitores do Linux Descomplicado!
Ricardo Ferreira

Comentários

comentários


VOCÊ TAMBÉM PODERÁ LER...