Índice:
Se você é um profissional técnico, sem dúvida conhece o Secure Shell (SSH) e o utiliza regularmente para se conectar a sistemas remotos. Embora seja uma ótima ferramenta, o SSH pressupõe que você tenha uma conexão com fio confiável. Nem sempre funciona tão bem em conexões sem fio, o que pode não ser confiável. Uma nova ferramenta que mudou foi o Mosh, ou Mobile Shell, que permite que os usuários se conectem a sistemas remotos e permaneçam conectados mesmo quando a rede cai ou você troca de rede.
Por que Mosh?
O Secure Shell é indispensável para administradores, programadores e usuários avançados que precisam fazer login em servidores, do outro lado do corredor ou do país. É um substituto seguro e criptografado para o Telnet. É uma ótima ferramenta, mas foi projetada nos anos 90, uma era antes dos computadores móveis com Wi-Fi se tornarem comuns. O SSH assume uma conexão com fio confiável, o que nem sempre acontece quando os usuários ficam móveis. A conectividade Wi-Fi, como muitas pessoas descobriram, geralmente é irregular e é impossível alterar as conexões, digamos de Wi-Fi para LTE, sem interromper a conexão.
Outras vezes, não é culpa da conexão, mas sim do usuário. Ou, como dizem em TI, é um PEBKAC (existe um problema entre o teclado e a cadeira). Meu favorito de todos os tempos é fechar a tampa e esquecer que estou conectado a uma máquina remota via SSH. Abro a tampa e digito na janela do terminal e nada acontece. Tudo o que posso fazer é interromper a sessão e entrar novamente. É chato, mas já o fiz inúmeras vezes e tenho certeza que você também.
Muitas pessoas tentam mitigar isso usando programas como o GNU Screen e o tmux. Estes são multiplexadores de terminal que não apenas oferecem uma navegação com guias na linha de comando, mas também podem preservar sua sessão, caso sua conexão caia. Basta fazer login novamente e você pode continuar exatamente de onde parou. Por mais úteis que sejam esses programas, os problemas com o SSH ainda permanecem.
Fui renunciado ao meu destino SSH, mas um dia me deparei com um novo programa em um servidor shell no qual saí. O Mosh é uma tentativa de melhorar o SSH, tornando-o adequado para uso em laptops. Ele foi desenvolvido por algumas pessoas inteligentes do MIT, as pessoas que nos trouxeram o Lisp (então elas provavelmente sabem uma coisa boa quando veem uma). Keith Winstein, um dos principais desenvolvedores, criou um vídeo mostrando como funciona.
Os criadores de Mosh o descrevem como um substituto para o SSH que é mais robusto e responsivo, especialmente através de Wi-Fi, celular e links de longa distância.
Como funciona
Mosh usa um novo protocolo chamado Protocolo de Sincronização de Estado (SSP). Isso se baseia nos protocolos de conexão remota tradicionais, como Telnet e SSH. Sob SSH, o servidor envia apenas alguns bytes a jusante para o cliente a ser interpretado.
O SSP adiciona outra camada. O servidor e o cliente acompanham o que foi enviado usando números de sequência. Se o servidor obtiver um número de sequência maior que o enviado anteriormente, é inteligente o suficiente para descobrir que o cliente mudou para outra conexão. Isso significa que é fácil percorrer a rede Wi-Fi para a rede Wi-Fi, ou de uma rede Wi-Fi para uma rede celular, ou de uma rede Wi-Fi para uma conexão com fio - e assim por diante.
Outro recurso interessante que Mosh fornece é o eco de caracteres em tempo real. Normalmente, se você estiver no SSH, poderá encontrar um atraso entre digitar e aguardar que seus caracteres apareçam na tela, pois o servidor faz eco ao que você está digitando.
Obtendo
Se você estiver intrigado, ficará feliz em saber que a instalação do Mosh é fácil o suficiente. A maioria das principais distribuições Linux e Unix o possuem em seus repositórios. A página inicial do Mosh mostra exemplos usando o Debian e Ubuntu, assim como o Gentoo, Arch e Fedora. Como o Mac OS X é baseado no Unix, os usuários do Mac também podem participar. Há um pacote nativo e as pessoas que desejam compilá-lo no Mac usando Homebrew e MacPorts. Se o seu sistema não tiver o Mosh como um pacote, você poderá fazer o download e compilá-lo, se necessário.
Quando o cliente estiver instalado, você estará pronto para instalar e executar o Mosh. Faça o login exatamente como no SSH. De fato, Mosh não lida com logins; entrega as informações de login ao SSH. Isso é útil se você usar os recursos de criptografia de chave pública do SSH para efetuar login com segurança, sem a necessidade de uma senha.
Há uma captura, no entanto. Você precisa do servidor Mosh para se conectar. Felizmente, você não precisa ser um superusuário para instalá-lo. Você pode até colocá-lo em seu diretório pessoal e iniciá-lo dessa maneira, se não conseguir convencer o administrador do sistema a instalá-lo. Mosh ainda é novo, então talvez um dia se torne tão onipresente nos servidores quanto o SSH.
Outra coisa: Mosh espera que seu terminal suporte UTF-8. Quase todos os emuladores de terminal modernos o fazem, mas pode ser necessário definir a variável de ambiente $ LANG antes que o servidor no sistema remoto aceite a conexão.
Permanecendo vivo
Agora que você está conectado, pode começar a trabalhar codificando ou editando seus arquivos de configuração ou administrando máquinas remotas, seja em casa, no trabalho, no trem ou em altitude de cruzeiro.
Você pode testar a robustez do Mosh desconectando o seu Wi-Fi. Mosh exibirá uma mensagem na parte superior do terminal dizendo que não possui conexão, além de um temporizador. Reconecte e sua sessão continuará exatamente de onde parou. Também funciona se você fechar a tampa do laptop.
Mosh é ainda melhor quando emparelhado com um multiplexador de terminal como GNU Screen ou tmux. Eles foram usados no passado da maneira que o Mosh é, para manter as sessões SSH ativas em conexões não confiáveis, mas ainda oferecem algumas vantagens quando usadas com o Mosh. Por exemplo, você pode se desconectar de um terminal, sair e se conectar a partir de outra máquina, acessar o multiplexador e continuar com ele. Isso é muito útil para trabalhos longos. Também é popular para usuários ávidos do IRC permanecerem conectados em um servidor shell e desconectar conforme necessário.
Hora de Mosh?
Agora que você já teve uma ideia de como o Mosh pode melhorar sua experiência de login remoto móvel, por que não tentar por si mesmo?