Obtenha melhores sessões remotas no Linux com Mosh e Tmux

Um dos pontos fortes do Linux é sua orientação para a rede, que se deve em grande parte à sua herança Unix. Há uma razão pela qual o Linux é o sistema operacional preferido para servidores.

A principal forma de acessar remotamente os servidores Linux é através de SSH, ou Secure Shell. Embora seja útil e seguro, ele foi projetado em uma era antes de as conexões Wi-Fi e de celular se tornarem comuns.

Se você mover seu computador para uma rede Wi-Fi diferente ou colocá-lo em hibernação, poderá ficar desconectado com uma tela de terminal aparentemente congelada.

Por que Mosh + Tmux?

Felizmente, existem algumas ferramentas que tornarão a computação remota com SSH mais fácil de usar e mais confiável. Você pode usá-los em tudo, desde um terminal físico em um data center a um servidor doméstico, em um servidor em nuvem, até mesmo em outra máquina desktop executando Unix ou um sistema operacional BSD.

Mosh é uma ferramenta em cima do SSH que o torna ciente das mudanças nas conexões de rede, e tmux é um "multiplexador de terminal" que permite preservar uma sessão de shell em diferentes logins e até mesmo compartilhá-los.

Leia mais: O que é SSH e o que ele representa?

Primeiros passos com Mosh

Mosh é um projeto de código aberto que faz o SSH funcionar em roaming e em conexões intermitentes, como muitas conexões sem fio.

Você pode mudar seu computador de uma rede com fio para uma rede com fio, para uma rede sem fio diferente e sua conexão permanecerá ativa. Você também pode colocar seu laptop para hibernar enquanto estiver conectado e, depois que a rede for reconectada, você poderá digitar na janela do terminal.

Relacionado: Gerenciar conexões SSH remotas com esses comandos Linux

Se você perder sua conexão de rede, o Mosh lhe dirá que não ouviu do servidor remoto. Se o servidor estiver exibindo lentamente os caracteres, ele irá sublinhar o que você digitar até que a tela mais recente volte.

Há mais detalhes técnicos em um artigo escrito pelos autores, mas instalá-lo como um usuário é muito simples. Mosh está amplamente disponível na maioria dos gerenciadores de pacotes de distribuições Linux. Também está disponível como um aplicativo do Google Chrome.

Instale o Mosh no Linux

Por exemplo, para instalar no Ubuntu:

 sudo apt install mosh

Obviamente, o servidor também precisará ter o servidor Mosh instalado. A vantagem do Mosh é que o componente do servidor pode ser executado no modo de usuário, portanto, você não precisa ser root para instalá-lo.

Usando Mosh

Quando você quiser se conectar à sua máquina remota, basta digitar:

 mosh username@server

Obviamente, você deseja substituir o "nome de usuário" e o "servidor" pelo seu nome de usuário e o nome da máquina à qual está tentando se conectar.

Consulte a documentação se você tiver necessidades mais especializadas, como conectar-se a uma porta diferente.

Se tudo funcionar corretamente, você terá uma sessão de terminal remoto, apenas com SSH. Você poderá emitir comandos da mesma maneira, mas sua conexão será mais confiável.

Introdução ao Tmux

Você tem uma conexão de terminal remoto que pode sobreviver a mudanças na rede sem fio, mas e quando estiver finalmente conectado?

Você pode executar um trabalho que leva muito tempo, como a instalação de software ou até mesmo um longo trabalho de compilação. O que acontece se você for desconectado. O trabalho provavelmente será encerrado quando o terminal o fizer.

Além disso, você só pode fazer uma coisa por vez no terminal, mesmo com o controle de trabalho. Se você quiser executar um editor de tela inteira, ele ocupará todo o terminal.

Tmux é uma resposta para esses problemas. É um "multiplexador de terminal" que permite executar vários terminais em uma janela. É como um terminal com guias em um desktop Linux, mas muito mais flexível.

Você pode desconectar uma sessão e fazer logout, para voltar a ela mais tarde e continuar de onde parou. Você pode abrir várias janelas de terminal. Você pode editar um programa em uma janela em um editor e testá-lo na linha de comando em outra.

Instalar o tmux também é muito fácil. Como o Mosh, ele está incluído em muitos gerenciadores de pacotes de distro do Linux. No Ubuntu, basta digitar:

 sudo apt install tmux

Obviamente, você terá que instalar isso em sua máquina remota para usá-lo lá, mas é bastante útil, localmente também.

Depois de instalado, você inicia o tmux usando o comando:

 tmux

Em seguida, você iniciará em uma janela de terminal, semelhante a uma que você iniciou localmente. Você verá uma barra de status mostrando em qual janela você está.

O Tmux divide a tela em "janelas" com vários "painéis", mostrando seus próprios terminais. Você pode reorganizar e redimensionar esses painéis, com janelas ilimitadas com seus próprios painéis.

Como o tmux é um programa baseado em terminal, ele é totalmente controlado pelo teclado. O comando de prefixo padrão para executar comandos no tmux é Ctrl + B. Isso pode ser alterado no arquivo de configuração.

O arquivo de configuração do usuário é .tmux.conf em seu diretório inicial. A documentação tem mais detalhes, mas o número de personalizações que você pode realizar é extenso.

Tmux pode ter uma curva de aprendizado, mas com outros programas "difíceis" no mundo Linux / Unix, muitos usuários acham que o tempo gasto no aprendizado desses programas é bem gasto no que ele permite que eles façam.

Uma das opções mais poderosas é a capacidade de desconectar sua sessão e reconectá-la mais tarde. Para fazer isso, digite Ctrl + D. Para reconectar, digite "tmux attach" no shell e você estará de volta à sua sessão.

Isso significa que sua sessão permanecerá ativada enquanto a máquina permanecer. Este método também é popular para rodar aplicativos de chat como o IRC, já que as pessoas podem permanecer em salas de chat por muito tempo. Também é possível compartilhar sessões com outras pessoas, como para programação em pares.

Combinando Mosh e Tmux

O verdadeiro poder de uma sessão remota vem das combinações de Mosh e tmux.

Com o Mosh, você pode fazer login em sua máquina remota de qualquer lugar e não se preocupar com a confiabilidade de sua conexão. Se você quiser executar algo que pode demorar muito, pode desconectar sua sessão e voltar a ela mais tarde.

A combinação de Mosh e tmux permitirá máxima confiabilidade e flexibilidade em seus logins remotos. Há muito mais para explorar apenas no tmux que irá liberar o poder de suas sessões de terminal.