Como configurar um servidor SSH no Windows Server

Visão geral

Este artigo explica como instalar e configurar o OpenSSH Server no Windows Server. O guia cobre desde a instalação até a configuração de autenticação por chave, serviço e firewall.

Convenções de variáveis

Variável Exemplo Descrição
<<SERVER>> 192.168.1.10 Nome do host ou endereço IP do servidor de destino

Etapa 1: Instalar o OpenSSH Server

Abra o PowerShell com privilégios de administrador e execute o comando abaixo:

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

Etapa 2: Iniciar o serviço e habilitar inicialização automática

Após a instalação, inicie o serviço sshd e configure-o para iniciar automaticamente:

# Iniciar serviço
Start-Service sshd

# Habilitar inicialização automática
Set-Service -Name sshd -StartupType Automatic

💡 Observação
Ao iniciar o sshd pela primeira vez, os arquivos de configuração e as chaves de host são criados automaticamente:

  • %ProgramData%\ssh\sshd_config (arquivo de configuração)
  • %ProgramData%\ssh\ssh_host_* (chaves do host)

Modifique esses arquivos apenas após serem gerados.

Etapa 3: Configurar o firewall

Permita conexões SSH (porta padrão 22) no firewall do Windows Defender:

New-NetFirewallRule -Name "OpenSSH-Server" -DisplayName "OpenSSH Server (sshd)" `
  -Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow

Etapa 4: Configurar autenticação por chave (recomendado)

  1. Consulte as instruções para geração e configuração de chaves SSH no cliente

  2. Adicione a chave pública ao arquivo authorized_keys:

    • Para usuários comuns: %USERPROFILE%\.ssh\authorized_keys
    • Para administradores: %ProgramData%\ssh\administrators_authorized_keys
  3. No servidor, edite o arquivo sshd_config (geralmente em %ProgramData%\ssh\sshd_config) e confirme os seguintes parâmetros:

    PubkeyAuthentication yes
    AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    

Etapa 5: Primeira conexão e teste

Conecte-se ao servidor a partir do cliente:

ssh Administrator@<<SERVER>>

Na primeira conexão, o sistema exibirá um aviso sobre a chave do host.
Após o login, use whoami para confirmar o usuário autenticado.

Etapa 6: Restrições e reforço de segurança

Edite o arquivo sshd_config e adicione ou modifique as seguintes configurações:

Port 2222
AllowGroups SSHAdmins
AllowUsers Administrator deployuser
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
  • Port 2222 — alterar a porta padrão reduz o risco de ataques automatizados.
  • AllowGroups SSHAdmins — limita o acesso SSH apenas a grupos autorizados.
  • AllowUsers Administrator deployuser — restringe logins a usuários específicos.
  • PasswordAuthentication no — desativa autenticação por senha, reforçando a segurança.
  • KbdInteractiveAuthentication no — desativa métodos de autenticação interativos.
  • PubkeyAuthentication yes — garante autenticação via chave pública.

ℹ️ Observação
No Windows Server 2025 ou superior, restrições de grupo para conexões SSH são aplicadas por padrão. Em algumas localizações, o grupo “OpenSSH Users” pode não funcionar corretamente.

Crie o grupo SSHAdmins e as contas necessárias (deployuser) com privilégios mínimos.

Ative também o registro detalhado de eventos definindo LogLevel VERBOSE no sshd_config.

Etapa 7: Verificar logs

Para revisar os logs recentes no PowerShell:

Get-WinEvent -LogName OpenSSH/Operational `
  | Where-Object { $_.TimeCreated -ge (Get-Date).AddHours(-1) } `
  | Select-Object TimeCreated, Id, LevelDisplayName, Message

💡 Dica
Liste todos os nomes de logs disponíveis com:

wevtutil el | findstr OpenSSH

Use o nome exibido no parâmetro -LogName.

Conclusão

Com o OpenSSH Server configurado no Windows Server, é possível gerenciar remotamente o sistema de forma segura, assim como em ambientes Linux/Unix. A autenticação por chave e as políticas de firewall garantem uma administração remota robusta e protegida.