Como Configurar Servidor SSH no WSL2 e Encaminhar Portas na Rede Local
Servidor SSH no WSL2 (Ubuntu): como configurar e encaminhar portas na Rede LAN (Local) — guia passo a passo
Neste post demonstro como configurar um servidor SSH no WSL2 usando a distribuição Ubuntu e a forma correta de expor o serviço na sua rede LAN.
Futuramente pretendo publicar outro post ensinando como se conectar ao servidor mesmo estando fora da rede local, de modo que, independentemente da rede à qual você esteja conectado, você tenha acesso ao seu servidor e possa executar ou gerenciar suas aplicações, containerizadas ou não.
Pessoalmente, prefiro trabalhar com containers. Observação: o WSL2 funciona integrado ao Docker Desktop, o que facilita bastante — não é necessário instalar o Docker Engine dentro do subsistema para utilizá‑lo.
Também fiz um vídeo explicando todos os comandos de maneira mais detalhada: Como criar servidor ssh com wsl+ubuntu
Instalando Ubuntu
wsl --install -d UbuntuInstalando o OpenSSH Server
sudo apt update
sudo apt install openssh-serverAdicionando systemd à inicialização
sudo nano /etc/wsl.confCole o código abaixo no arquivo wsl.conf:
[boot]
systemd=trueEditando a configuração do servidor SSH
Descomente a linha Port e ajuste as demais configurações pertinentes do servidor SSH; altere a porta para a mesma que será redirecionada na interface de rede e, posteriormente, liberada no firewall:
sudo nano /etc/ssh/sshd_configCriando diretório para configurações do socket SSH (se necessário)
sudo mkdir -p /etc/systemd/system/ssh.socket.dEditando listen.conf (somente se o Ubuntu for 22.10 ou posterior)
sudo nano /etc/systemd/system/ssh.socket.d/listen.confOuvindo em uma porta específica
Adicione o código abaixo ao listen.conf (somente se o Ubuntu for 22.10 ou posterior):
[Socket]
ListenStream=[WSL_PORT]Reiniciando o daemon do systemd
sudo systemctl daemon-reloadConectando ao subsistema Linux (do próprio host)
ssh user@localhost -p [WSL_PORT]The authenticity of host '[localhost]:[PORT] ([127.0.0.1]:[PORT])' can't be established.
ED25519 key fingerprint is SHA256:7OmoApSrmRvZR4aSdf98712NSPQIGepNkqu9GYOMWewE.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?Digite: yes
Após digitar sua senha, aparecerá uma mensagem parecida com esta:
Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.6.87.2-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Fri Oct 17 23:36:39 -03 2025
System load: 0.0 Processes: 42
Usage of /: 0.3% of 1006.85GB Users logged in: 1
Memory usage: 6% IPv4 address for eth0: x.x.x.x
Swap usage: 0%
Last login: Fri Oct 17 23:20:22 2025 from 127.0.0.1Reiniciando o servidor SSH
sudo systemctl restart sshLiberando a porta [HOST_PORT] no firewall do Windows
Nota: os passos abaixo são necessários apenas se desejar conectar ao servidor SSH a partir de outra máquina na rede LAN.
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd) for WSL' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort [HOST_PORT]Port forwarding (encaminhamento do tráfego do Windows para o WSL)
netsh interface portproxy add v4tov4 listenport=[HOST_PORT] listenaddress=0.0.0.0 connectport=[WSL_PORT] connectaddress=[WSL_IP]Verificando se o encaminhamento de porta foi criado
netsh interface portproxy show allDeverá retornar algo parecido com:
Listen on IPv4
| Address | Port | Address | Port |
|---|---|---|---|
| 0.0.0.0 | [HOST_PORT] | [WSL_IP] | [WSL_PORT] |
Conectando ao servidor a partir de outra máquina na rede LAN (ou do próprio host)
ssh [WSL_USER]@[HOST_IP] -p [HOST_PORT] -vO parâmetro -v significa verbose; é opcional, mas útil para diagnosticar a conexão.
Novamente deverá aparecer a mensagem de verificação da autenticidade do host — você pode usar este link para pular diretamente para ela: Aparecerá a seguinte mensagem
Basta seguir os mesmos passos e seu servidor SSH estará pronto.
Referências
- DEVMEDIA: Comandos Importantes Linux
- Microsoft: Comandos básicos para WSL
- Digital Ocean: Como usar systemctl para gerenciar serviços e unidades do systemd
- Microsoft: Acessando uma distribuição do WSL 2 na rede local (LAN)
- Microsoft: New-NetFirewallRule