Como acessar o Windows 11 a partir do Linux via SSH
Esse tutorial irá mostrar como acessar o PowerShell do Windows 11 a partir de uma distro Linux ou do Android utilizando SSH.
Instalar e configurar o OpenSSH Server
01 - Abra o PowerShell como administrador e verifique se o “OpenSSH Server” aparece como “Installed”:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
02 - Se não estiver instalado, instale-o com o comando abaixo:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
03 - Inicie o serviço SSHD:
Start-Service sshd
04 - Configure o SSHD para que inicie automaticamente com o Windows:
Set-Service -Name sshd -StartupType 'Automatic'
05 - Acesse o PC Windows via SSH de qualquer outro dispositivo da rede local com:
ssh usuario@IP_DO_WINDOWS
Passo opcional 01
Você precisará de uma senha configurada para o seu usuário do Windows para poder acessá-lo via SSH. Se você quiser fazer login no Windows automaticamente (sem pedir senha) e ao mesmo tempo manter a senha do usuário que possibilita o uso so SSH, siga esses 3 passos.
01 - Rode o comando abaixo para alterar a chave do Windows Auto Logon no registro:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /f
02 - Agora, rode o comando a seguir substituindo “NomeDoUsuário” pelo seu nome de usuário:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUsername /t REG_SZ /d "NomeDoUsuario" /f
03 - Por fim, rode o comando abaixo substituindo “SuaSenhaAqui” pela sua senha:
ATENÇÃO: A senha fica salva em texto simples no registro. Faça por sua conta e risco.
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "SuaSenhaAqui" /f
Revertendo todas essas mudanças:
Desfaça o passo 01:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 0 /f
Desfaça o passo 02:
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUsername /f
Desfaça o passo 03:
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /f
Passo opcional 02
Se quiser que o SSH acesse diretamente o PowerShell ao invés do CMD, rode o comando abaixo para tornar o PowerShell o novo padrão:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Passo opcional 03
O SSH irá utilizar a porta 22 para se comunicar com os outros dispositivos. Se o SSH não estiver conseguindo acessar o seu Windows a partir de outro dispositivo - é possível que a instalação não tenha criado automaticamente uma regra de Firewall. Se for esse o caso, você pode utilizar o comando abaixo para criar essa regra:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
IMPORTANTE
- Para saber qual é o nome de usuário correto para acessar o Windows via SSH, abra o PowerShell e verifique qual nome aparece no prompt. Esse é o seu
nome de usuário. Para confirmar se o nome está correto, você pode utilizar o comando
whoamino PoweShell. Se esse nome contiver espaços, utilize aspas no comando de acesso do ssh. Exemplo:ssh "nome sobrenome@192.168.100.1".