Header Ads

O que é o Mosh Shell e como usá-lo?

Mosh ou “ Mobile Shell, ” foi projetado para substituir o SSH, especificamente para dispositivos móveis ou laptops em conexões lentas. Mosh funciona por UDP e manterá sua conexão ativa, mesmo se você mudar de rede WiFi ou experimentar sinal de celular flutuante.

O que é Mosh?

O sistema de transferência baseado em UDP do Mosh o torna mais estável do que o SSH tradicional, pois lida com a perda de pacotes com muito mais eficácia. Se sua conexão cair um pouco, o Mosh irá reconectá-lo assim que voltar, deixando seus comandos no lugar enquanto você estava digitando.

Também reduz significativamente a latência; se você já tentou usar o SSH em um servidor lento, notará que até mesmo os pressionamentos de tecla ficam lentos e não respondem. Isso ocorre porque o cliente SSH espera por uma resposta TCP do servidor antes de mostrar sua digitação, caso o servidor o intercepte por algum motivo. Mosh é mais inteligente e exibirá sua digitação em tempo real. Ele ainda fornece previsões de digitação sublinhadas, o que também é útil.

Se persistência de longo prazo é tudo o que você procura, você pode usar o tmux em seu servidor por SSH. O Tmux divide seu terminal em vários painéis, cada um com várias guias, que persistem no servidor nas sessões SSH. A vantagem aqui é que se a sua sessão SSH for desconectada, isso não afetará o que está acontecendo no servidor, da mesma forma que o Mosh.

Mas o Mosh e o tmux também funcionam bem juntos, já que o Mosh irá reconectar você automaticamente à sua sessão do tmux se sua conexão cair, sem ter que executar ssh e tmux -a t [nome] novamente.

Quão seguro é o Mosh?

O Mosh faz a conexão inicial por SSH, então a autenticação é tão segura quanto o SSH. Ele usa criptografia AES-128 para o tráfego enviado por UDP, de modo que seu tráfego não pode ser detectado.

O principal problema com o Mosh é que ele requer a abertura de muitas portas. Mosh pode usar qualquer porta entre 60000-61000, dependendo do endereço IP da conexão. E embora você geralmente use a mesma porta durante a conexão, isso não é garantido. Este não é um problema importante, mas abrir 1000 portas não é uma prática de segurança muito boa.

Se você estiver executando um firewall como o iptables, terá que abrir essas portas manualmente:

 sudo iptables -I INPUT 1 -p udp --dport 60000: 61000 -j ACEITAR 

E se você estiver executando um servidor em um serviço como o AWS, também precisará abrir as portas por meio do firewall. Se você quiser que seja mais seguro, você pode usar porta knocking para fechar esses endereços e abri-los apenas quando o Mosh bate, mas isso também não é ideal se a porta mudar durante a sua sessão.

Resumindo, se você estiver usando Mosh e estiver preocupado com a segurança, você provavelmente deve fazer com que ele escute na sua rede privada e use uma VPN.

Instale o servidor Mosh e obtenha um cliente Mosh

Para que o Mosh funcione, o servidor precisa ter os binários do Mosh instalados. Isso não executa um daemon como o sshd; em vez disso, é o primeiro comando que seu cliente Mosh executa ao se conectar por SSH. Quando a conexão é encerrada, o servidor encerra o servidor Mosh em execução.

A instalação é bastante simples, pois está disponível na maioria dos gerenciadores de pacotes. Para sistemas baseados em Debian como o Ubuntu, isso seria:

 sudo apt-get install mosh 

Isso instala o cliente e o servidor, portanto, você instalará o mesmo pacote em ambos. As instalações orientadas para servidor simplesmente exigirão que você substitua o gerenciador de pacotes de sua distro pelo apt-get.

Para Windows, você terá que instalar o cliente para Chrome. Ainda não há binário para Windows.

Para macOS, você pode instalar o pacote diretamente ou instalá-lo usando o Homebrew:

 brew install mosh 

Para iOS, você pode usar um aplicativo como Termius ou Blink Shell.

E para Android, você pode usar um aplicativo como o Termux ou JuiceSSH.

Em qualquer caso, você se conectará como faria com SSH:

 mosh usuário @ servidor 

Isso se conecta com um nome de usuário e senha. Se isso não for ideal para você, você também pode especificar manualmente novas opções de SSH com o parâmetro --ssh:

 mosh --ssh = "~ / bin / ssh -i ~ / ssh / id_rsa" usuário @ porta 

Este comando fará uso de sua chave privada em vez de uma senha. Observe que o servidor precisará ser configurado para aceitar esta chave privada, especialmente se for uma nova vinda de um telefone ou outro dispositivo.

Nenhum comentário