Pesquisa de site

Como acessar o terminal do servidor Linux no navegador da Web usando a ferramenta ‘Wetty (Web + tty)’


Como administrador de sistema, você provavelmente se conecta a servidores remotos usando um programa como o GNOME Terminal (ou similar) se estiver em um desktop Linux, ou um cliente SSH como o Putty se tiver um Máquina Windows, enquanto você executa outras tarefas, como navegar na web ou verificar seu e-mail.

Não seria fantástico se houvesse uma maneira de acessar um servidor Linux remoto diretamente do navegador da web? Felizmente para todos nós, existe uma ferramenta chamada Wetty (Web + tty) que nos permite fazer exatamente isso – sem a necessidade de mudar programas e tudo na mesma janela do navegador da web.

Instalando Wetty no Linux

Wetty está disponível no repositório GitHub de seu desenvolvedor. Por esse motivo, independente da distribuição, você está usando algumas dependências que devem ser instaladas manualmente antes de clonar o repositório localmente e instalar o programa.

Em distros baseadas em RHEL, como CentOS, Rocky Linux e AlmaLinux, você precisa instalar o NodeJS e o repositório EPEL conforme mostrado:


yum groupinstall 'Development Tools'
curl -fsSL https://rpm.nodesource.com/setup_17.x | bash -
yum update 
yum install epel-release git nodejs npm

No Debian e seus derivados, a versão do NodeJS disponível nos repositórios da distribuição é mais antiga que a versão mínima necessária para instalar o Wetty, então você deve instalá-lo a partir do Wetty. >NodeJS Repositório de desenvolvedores GitHub:


apt install curl build-essential
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
apt update && apt install -y git nodejs npm

Após instalar essas dependências, clone o repositório GitHub:

git clone https://github.com/krishnasrinivas/wetty

Mude o diretório de trabalho para wetty, conforme indicado na mensagem acima:

cd wetty

então instale Wetty executando:

npm install

Se você receber alguma mensagem de erro durante o processo de instalação, resolva-a antes de prosseguir. No meu caso, a necessidade de uma versão mais recente do NodeJS no Debian era um problema que precisava ser resolvido antes de executar o npm install com sucesso.

Iniciando o Wetty e acessando o terminal Linux a partir do navegador da Web

Neste ponto, você pode iniciar a interface web na porta local 8080 para Wetty executando (isso pressupõe que seu diretório de trabalho atual seja /wetty) :

node app.js -p 8080

Como você pode ver na imagem abaixo:

Mas faça um favor a si mesmo e NÃO insira seu nome de usuário e senha, pois esta conexão não é segura e você não quer que suas credenciais viajem desprotegidas pela rede.

Por esse motivo, você deve sempre executar o Wetty através do HTTPS. Vamos criar um certificado autoassinado para proteger nossa conexão com o servidor remoto:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

E então use-o para iniciar o Wetty via HTTPS.

Observe que você precisará abrir a porta HTTPS personalizada onde deseja executar o Wetty:

firewall-cmd --add-service=https # Run Wetty in the standard HTTPS port (443)
firewall-cmd --permanent --add-service=https
firewall-cmd --add-port=XXXX/tcp # Run Wetty on TCP port XXXX
nohup node app.js --sslkey key.pem --sslcert cert.pem -p 8080 &

O último comando na sequência acima iniciará o Wetty em segundo plano, escutando na porta 8080. Como estamos usando um certificado autoassinado, é de se esperar que o navegador mostre um aviso de segurança – é perfeitamente seguro ignorá-lo e adicionar uma exceção de segurança – seja permanentemente ou para a sessão atual:

Depois de confirmar a exceção de segurança, você poderá fazer login no seu VPS usando o Wetty. Escusado será dizer que você pode executar todos os comandos e programas como se estivesse sentado na frente de um terminal real ou virtual, como você pode ver na seguinte tela: