O OpenSSH é a implementação mais utilizada do protocolo SSH (Secure Shell), permitindo acesso remoto seguro a servidores e estações Windows por meio de conexões criptografadas. A partir do Windows 10, Windows 11 e Windows Server 2019/2022, o OpenSSH pode ser instalado como um recurso opcional do sistema operacional utilizando apenas o PowerShell, dispensando softwares de terceiros.

Resumo
Neste artigo você aprenderá como instalar, configurar, validar, utilizar e remover o OpenSSH Client e OpenSSH Server no Windows utilizando apenas o PowerShell.

Por que isso é importante?

  • Permite administração remota segura de servidores Windows.
  • Substitui soluções como Telnet por um protocolo criptografado.
  • Facilita automações, scripts e integração com ferramentas DevOps.
  • Permite acesso remoto utilizando clientes Linux, macOS e Windows.

Pré-requisitos

  • Windows 10, Windows 11 ou Windows Server 2019/2022.
  • PowerShell executado como Administrador.
  • Permissões administrativas locais.

Verificando se o OpenSSH está instalado

Antes da instalação, verifique se os componentes do OpenSSH já estão disponíveis no sistema.

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

Se nenhum componente estiver instalado, a saída será semelhante a:

Name : OpenSSH.Client~~~~0.0.1.0 State : NotPresent Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent

Instalando o OpenSSH Client

O OpenSSH Client permite que o computador realize conexões SSH para outros servidores.

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Instalando o OpenSSH Server

O OpenSSH Server permite que este computador aceite conexões SSH provenientes de outros equipamentos.

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Após a instalação, o retorno esperado será:

Path : Online : True RestartNeeded : False
Atenção: Caso o parâmetro RestartNeeded retorne True, reinicie o Windows antes de prosseguir com a configuração do serviço.

Configurando o serviço SSH

Após a instalação do servidor, é necessário iniciar o serviço e configurá-lo para iniciar automaticamente junto com o Windows.

# Inicia o serviço SSH Start-Service sshd # Inicialização automática Set-Service -Name sshd -StartupType Automatic

Configurando a regra de Firewall

Normalmente a instalação cria automaticamente a regra de firewall. Caso ela não exista, execute o comando abaixo.

if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) { Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..." New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' ` -DisplayName 'OpenSSH Server (sshd)' ` -Enabled True ` -Direction Inbound ` -Protocol TCP ` -Action Allow ` -LocalPort 22 } else { Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists." }

Validando o serviço

Verifique se o serviço SSH está em execução.

Get-Service sshd

Resultado esperado:

Status Name DisplayName ------ ---- ----------- Running sshd OpenSSH SSH Server

Conectando ao servidor via SSH

Depois que o OpenSSH Server estiver instalado e em execução, utilize qualquer cliente SSH para realizar a conexão.

ssh dominio\usuario@servidor

Ou utilizando um endereço IP:

ssh administrador@192.168.1.100

Na primeira conexão será exibida uma mensagem semelhante a:

The authenticity of host 'servername (10.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:XXXXXXXXXXXXXXXXXXXXXXXX. Are you sure you want to continue connecting (yes/no)?

Digite yes para adicionar o servidor à lista de hosts conhecidos. Em seguida, informe a senha do usuário. Por motivos de segurança, os caracteres digitados não serão exibidos na tela.

Após a autenticação, será apresentado um prompt semelhante a:

domain\username@SERVERNAME C:\Users\username>

Desinstalando o OpenSSH

Caso não seja mais necessário utilizar o OpenSSH, ele pode ser removido utilizando os comandos abaixo.

Remover o OpenSSH Client

Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Remover o OpenSSH Server

Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Remover a regra de Firewall

if ((Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) { Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' is being removed." Remove-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' } else { Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist." }
Importante: Se o serviço SSH estava em execução durante a remoção do componente, reinicie o Windows para concluir completamente a desinstalação.

Tabela de referência

Comando Descrição
Get-WindowsCapability Verifica se o OpenSSH está instalado.
Add-WindowsCapability Instala o OpenSSH Client ou Server.
Start-Service sshd Inicia o serviço SSH.
Set-Service Configura inicialização automática do serviço.
Get-Service sshd Verifica o status do serviço.
ssh usuario@servidor Realiza conexão SSH.
Remove-WindowsCapability Remove os componentes do OpenSSH.

Imagem (opcional)

Recomenda-se adicionar capturas de tela das seguintes etapas:

  • Resultado do comando Get-WindowsCapability.
  • Instalação do OpenSSH.
  • Status do serviço sshd.
  • Primeira conexão SSH realizada com sucesso.
Instalação do OpenSSH no Windows

Conclusão

O OpenSSH tornou-se o padrão para administração remota segura em ambientes Windows. Sua instalação é simples e totalmente integrada ao sistema operacional através do PowerShell. Após configurar o serviço, habilitar a inicialização automática e validar a regra de firewall, o servidor estará pronto para receber conexões SSH de forma segura, permitindo gerenciamento remoto, automação de tarefas e integração com ferramentas de infraestrutura, DevOps e administração de servidores.