Linux e Windows costumavam ser inimigos mortais, mas hoje em dia eles tendem a se dar muito melhor. Na verdade, agora você pode até usar o SSH nativamente no Windows: tanto como cliente quanto como servidor. O que você faz quando é um administrador do Windows, mas precisa gerenciar também máquinas Linux? Você se acostuma com o comando (Secure Shell) SSH no Linux!
Este é o Parte IV da série de postagens no blog “A Windows Guy in a Linux World”. Se você quiser aprender mais sobre conceitos populares do Linux, não deixe de conferir a Parte I, a Parte II e a Parte III.
Neste post, você vai aprender tudo sobre como habilitar o SSH no Linux e como configurar seu cliente SSH do Windows para se conectar a servidores Linux remotos.
Observação: Todos os exemplos serão usando o OpenSUSE Linux.
Afastando-se do Ambiente de Desktop
No primeiro post desta série, o tutorial recomendou usar o ambiente de desktop KDE. Enquanto você estava passando pela configuração do OpenSUSE, provavelmente viu outra opção tentadora; a edição do servidor do OpenSUSE.

Se você instalou a edição de servidor da maioria das distribuições Linux (incluindo o OpenSUSE), você pode ter notado a completa falta de um ambiente de trabalho. A edição de servidor da maioria das distribuições populares (como o OpenSUSE, bem como o Ubuntu Server e CentOS) é como o Windows Server Core: sem ambiente de trabalho para falar.
Para entender por que o ambiente de trabalho é geralmente evitado na cultura Linux, você precisa entender o CLI e SSH.
SSH: O Padrão Ouro da Gestão Remota
O SSH, como muitos outros protocolos de gestão remota, é um sistema baseado em cliente-servidor. Um cliente se conecta remotamente pela rede a um servidor e permite que você execute comandos (ou até mesmo transfira arquivos). O SSH é o padrão de facto quando se trata de gerenciar o Linux remotamente.
Desde que o SSH existe há muito tempo e está profundamente integrado ao ecossistema Linux, utilitários de administração de linha de comando dominam o ambiente de servidor Linux. A maioria das distribuições de servidor Linux não possui uma interface gráfica.
Usando Comandos SSH no Linux
Chega de conversa. Vamos ver o que o SSH pode fazer, primeiro habilitando-o no OpenSUSE Linux. Para fazer isso, use o gerenciador de pacotes YaST. Para habilitar o SSH com o YaST no OpenSUSE:
- Clique no menu iniciar, digite terminal e escolha Konsole, assumindo que você instalou o KDE Desktop Manager ao instalar o OpenSUSE.
- No terminal, abra o YaST executando
sudo yast
. - Uma vez no YaST, desça até sistema, depois vá para gerenciador de serviços e pressione Enter para prosseguir.
- Desça até sshd e pressione
alt+s
para iniciar o serviço SSH. - Pressione
alt+r
para alterar o modo de inicialização de manual para inicialização automática. Isso garantirá que o serviço do servidor SSH seja iniciado mesmo após uma reinicialização. - Pressione
alt+o
para confirmar as alterações e aplicá-las.
Você pode ver essas etapas em ação abaixo.

Permitindo SSH através do Firewall
Quase toda distribuição Linux vem com algum tipo de firewall para protegê-la, assim como o Windows. Você pode ler sobre o firewall do OpenSUSE aqui. Para garantir que você possa acessar o serviço SSH remotamente a partir do Windows, você deve permiti-lo através do firewall. Para fazer isso:
- Ainda no terminal, inicie o YaST novamente com
sudo yast
. - Desça até Segurança e Usuários e depois vá para Firewall e pressione Enter para prosseguir.
- Navegue até Zonas –> Público e vá para o painel Serviços—Portas à direita.
- Desça para encontrar
ssh
nos serviços. - Selecione
ssh
com a tecla de espaço e pressionealt+d
para adicionar a seleção. - Pressione
alt+a
para aceitar as alterações.
Pode ver todos esses passos acima representados visualmente abaixo.

Assim como o Windows, o Linux possui diferentes níveis de confiança para aplicar regras de firewall. Esses níveis são chamados de zonas. O Windows tem zonas pública, de trabalho e privada por padrão. O Linux possui muitas mais, mas por padrão, utiliza a zona pública.
Conectar ao Linux a partir do Windows
Felizmente, nos dias de hoje, o Windows 10 possui um cliente SSH integrado. Para se conectar a um host Linux, abra um prompt de comando (cmd) ou console do PowerShell e especifique o nome de usuário para conectar e o IP ou nome do host.
Se tudo correr bem, o cliente SSH deve pedir para aceitar uma impressão digital. Uma impressão digital é um identificador para garantir que alguém não tenha sequestrado o endereço IP de destino.
Se estiver executando o Windows 7, ainda é possível fazer SSH para seu host Linux. Você só precisará baixar o cliente SSH da Microsoft da qui. Este cliente SSH é o mesmo que o Windows 10 utiliza.
Depois de digitar yes
e inserir sua senha, você estará conectado ao seu servidor! Agora, você pode usar a linha de comando como se estivesse abrindo um terminal no próprio computador.
Não exponha o SSH (porta padrão 22) à Internet através do seu roteador. Bots rastreiam a Internet constantemente procurando por portas SSH abertas. Assim que um bot encontra uma porta aberta, começará a enviar senhas tentando invadir por força bruta.
Habilitando o Suporte a Mouse no SSH com o Windows
Um dos grandes inconvenientes ao usar o cliente SSH nativo do Windows 10 (pelo menos até o momento desta escrita) é a falta de suporte a mouse. Isso significa que você não pode usar um mouse no midnight commander, como aprendeu em uma postagem anterior do blog.
Felizmente, a partir da versão oito do cliente OpenSSH para Windows, é possível obter suporte a mouse! Vamos instalar este cliente.
- Baixe a versão mais recente do OpenSSH-Win64 aqui e extraia o arquivo zip resultante. O tutorial vai assumir que você o extraiu para ~\Downloads\OpenSSH-Win64.
- Abra um console PowerShell e navegue até ~\Downloads\OpenSSH-Win64 com
cd ~\Downloads\OpenSSH-Win64
. - Verifique a versão do cliente SSH executando
.\\ssh -V
. Até a data desta postagem, a versão deve ser 8.1.0.0-p1. - Acesse seu servidor Linux usando
.\ssh <usuário>@<ip>
. - Depois de fazer login, teste o suporte a mouse executando
mc
para rodar o midnight commander e garantir que você possa usar um mouse.
Você pode ver todos esses passos acima representados visualmente abaixo.
Sobrescrevendo o Cliente SSH Padrão
Se desejar usar a nova versão de forma mais permanente, pode fazê-lo; no entanto, é necessário substituir o cliente SSH padrão do Windows 10. Isso garante que, sempre que executar ssh na linha de comando, a versão mais recente (com suporte ao mouse) será utilizada.
Supondo que o cliente esteja extraído na pasta ~\Downloads\OpenSSH-Win64
- Mova a pasta extraída OpenSSH-Win64 para uma pasta permanente de sua escolha. Este tutorial usará C:\users\public\OpenSSH-Win64.
- Vá para Iniciar e depois Executar e digite sysdm.cpl ou abra Sistema no painel de controle.
- Na guia Avançado, clique em Variáveis de Ambiente.
- Sob Variáveis do Sistema, clique em Caminho.
- Clique em Novo para adicionar um novo caminho e forneça o caminho da pasta para o cliente SSH (C:\users\public\OpenSSH-Win64 neste caso).
- Clique em Mover para Cima até que fique acima da pasta %SystemRoot%\system32. Isso garantirá que, sempre que digitar
ssh
na linha de comando, o Windows procurará aqui primeiro. - Abra um console PowerShell e execute
ssh -V
. Você deverá ver a versão como 8.1.0.0-p.
Essas etapas estão resumidas abaixo.

Dar prioridade a uma pasta sobre %SystemRoot%\system32 pode representar um risco de segurança. Se alguém tiver acesso ao seu computador, pode decidir inserir um vírus na pasta OpenSSH-Win64 e nomeá-lo como um utilitário do Windows, por exemplo, cd.exe.
Você deve restringir a pasta OpenSSH-Win64 para que somente administradores possam lê-la.
- Clique com o botão direito na pasta OpenSSH-Win64 e clique em Propriedades.
- Na guia Segurança, clique no botão Avançado.
- Clique em Desativar herança para permitir permissões personalizadas na pasta e evitar que as pastas pai substituam as permissões na pasta OpenSSH-Win64.
- Escolha Adicionar, encontre o grupo Administradores e dê a eles todos os direitos.
- Clique em Adicionar, encontre o grupo Todos e dê a eles permissões somente leitura.
- Selecione a caixa Substituir todas as permissões de objetos secundários para propagar essas configurações para todos os arquivos na pasta OpenSSH-Win64; clique em Aplicar.
- Agora teste essas permissões criando um novo arquivo na pasta OpenSSH-Win64. O Windows deve solicitar uma confirmação de administrador.
Você pode ver todos esses passos visualmente representados abaixo.

Gerenciando sessões desconectadas com o Tmux
Ah, que dor de cabeça! Você está no meio da execução de um comando longo via SSH e sua Internet cai. Agora você não faz ideia em que estado o servidor Linux está! Será que o comando já terminou? Como você o recupera?
Sessões desconectadas são um problema legítimo com SSH e felizmente têm uma solução direta. Você precisa de um multiplexador de terminal (tmux).
Tmux significa tanto a abreviação de multiplexador de terminal quanto o nome do programa em si
O tmux é um gerenciador de sessão para SSH. Ele “segura” uma sessão se você for desconectado e a mantém em execução em segundo plano. Você pode reconectar a essa sessão posteriormente ou até mesmo criar várias sessões e alternar entre elas.
Para gerenciar sessões desconectadas com o tmux:
- No terminal Linux, baixe e instale a utilidade tmux executando
sudo zypper install -y tmux
como mostrado abaixo:
Você também pode usar o YaST para baixar a utilidade tmux.

A maioria das distribuições Linux possui um gerenciador de pacotes de linha de comando diferente. O OpenSUSE usa zypper. O Arch usa pacman. O Ubuntu usa apt. O Red Hat usa dnf e yum. Felizmente, a sintaxe desses gerenciadores de pacotes é bastante semelhante em todos os casos.
2. No seu computador Windows, abra um console PowerShell e faça SSH para o seu servidor Linux. O tutorial usará um nome de usuário de homelab e um IP de servidor Linux de 192.168.134.169.
3. Abra o tmux executando tmux
assim que estiver conectado. Você deve ver uma barra verde na parte inferior
4. Execute um comando que exiba algum texto. Não importa qual seja. Este tutorial está usando neofetch. Você também pode executar ls
.
5. Desconecte a sessão fechando o PowerShell. Essa ação simula uma desconexão.
6. Reconecte-se ao seu servidor Linux novamente usando SSH.
7. Agora, reanexe à sessão anterior executando tmux a
. Você deve continuar vendo a saída do comando anterior ls
. Uau, nenhum dado foi perdido pela desconexão!
Você pode visualizar todos esses passos acima representados visualmente abaixo.

Se você tentar executar o utilitário Midnight Commander dentro do
tmux
, pode perceber que não tem suporte para o mouse. Você pode corrigir isso executandomc -x
em vez disso.
Habilitando tmux no Login
Por padrão, o tmux não estará disponível em todas as sessões SSH. Você pode alterar isso forçando o tmux a se conectar à sua sessão SSH toda vez que você fizer login.
Supondo que você esteja conectado via SSH ao seu servidor Linux:
- Abra o utilitário midnight commander usando mc.
2. Destaque o arquivo .bashrc e pressione editar.
O arquivo
.bashrc
é um script shell (lote) que é executado toda vez que você faz login via linha de comando
3. Adicione o código do script shell abaixo ao final do arquivo de texto.
4. Clique em sair e salve quando solicitado.
5. Teste o auto-attach do tmux desconectando-se da sua sessão SSH e reconectando. Você deve receber uma barra verde na parte inferior automaticamente, indicando que está conectado a uma sessão tmux
!
Isso é apenas arranhar a superfície do que o tmux
pode fazer, é um programa de multitarefa muito poderoso. Se você perguntar a qualquer administrador de Linux qual é o comando mais usado, provavelmente é o tmux
.
Conclusão
Isso conclui a última postagem na série de postagens do blog Um Cara do Windows em um Mundo Linux. Fique ligado no blog ATA para a próxima instalação que está por vir!