- Panoramica
- Notazione delle variabili
- Passaggio 1: Installazione di OpenSSH Server
- Passaggio 2: Avvio e impostazione dell’avvio automatico
- Passaggio 3: Configurazione del firewall
- Passaggio 4: Configurazione dell’autenticazione a chiave (consigliata)
- Passaggio 5: Prima connessione e verifica
- Passaggio 6: Limitazioni e sicurezza avanzata
- Passaggio 7: Verifica dei log
- Conclusione
Panoramica
Questo articolo illustra come installare e configurare OpenSSH Server su Windows Server, abilitando l’autenticazione tramite chiave pubblica, configurando il servizio e aprendo le porte firewall necessarie.
Notazione delle variabili
| Variabile | Esempio | Descrizione |
|---|---|---|
<<SERVER>> |
192.168.1.10 |
Nome host o indirizzo IP della macchina server |
Passaggio 1: Installazione di OpenSSH Server
Aprire PowerShell con privilegi di amministratore ed eseguire:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Passaggio 2: Avvio e impostazione dell’avvio automatico
Dopo l’installazione, avviare il servizio SSH (sshd) e impostarlo per l’avvio automatico:
# Avvio del servizio
Start-Service sshd
# Abilitazione avvio automatico
Set-Service -Name sshd -StartupType Automatic
💡 Nota
Alla prima esecuzione,sshdgenera automaticamente i file di configurazione e le chiavi host:
%ProgramData%\ssh\sshd_config— file di configurazione%ProgramData%\ssh\ssh_host_*— chiavi hostModificare la configurazione solo dopo che questi file sono stati creati.
Passaggio 3: Configurazione del firewall
Consentire il traffico SSH (porta 22) aggiungendo una regola di firewall:
New-NetFirewallRule -Name "OpenSSH-Server" -DisplayName "OpenSSH Server (sshd)" `
-Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
Passaggio 4: Configurazione dell’autenticazione a chiave (consigliata)
-
Guida alla generazione e configurazione delle chiavi SSH sul client
-
Registrare la chiave pubblica in
authorized_keys:- Per utenti standard:
%UserProfile%\.ssh\authorized_keys - Per amministratori:
%ProgramData%\ssh\administrators_authorized_keys
- Per utenti standard:
-
Modificare il file
sshd_config(in%ProgramData%\ssh\sshd_config) e assicurarsi che contenga:PubkeyAuthentication yes AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Passaggio 5: Prima connessione e verifica
Da un client, connettersi come segue:
ssh Administrator@<<SERVER>>
Alla prima connessione, verrà richiesto di verificare la chiave host.
Dopo l’accesso, eseguire whoami per confermare l’utente connesso.
Passaggio 6: Limitazioni e sicurezza avanzata
Aggiungere o modificare i seguenti parametri in sshd_config:
Port 2222
AllowGroups SSHAdmins
AllowUsers Administrator deployuser
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
- Port 2222 — cambia la porta predefinita (22) per ridurre gli attacchi automatici.
- AllowGroups SSHAdmins — limita l’accesso ai membri del gruppo specificato.
ℹ️ Nota
In Windows Server 2025 e versioni successive, le restrizioni di gruppo per SSH possono essere abilitate di default. Alcuni sistemi linguistici possono non riconoscere correttamente il gruppo integrato “OpenSSH Users”. - AllowUsers Administrator deployuser — limita l’accesso a utenti specifici.
- PasswordAuthentication no — disabilita l’autenticazione tramite password.
- KbdInteractiveAuthentication no — disabilita metodi interattivi non sicuri.
- PubkeyAuthentication yes — assicura l’autenticazione basata su chiavi.
Assicurarsi che il gruppo SSHAdmins e l’utente deployuser esistano e abbiano privilegi minimi.
Impostare LogLevel VERBOSE per una registrazione dettagliata degli accessi.
Passaggio 7: Verifica dei log
Per visualizzare i log recenti:
Get-WinEvent -LogName OpenSSH/Operational `
| Where-Object { $_.TimeCreated -ge (Get-Date).AddHours(-1) } `
| Select-Object TimeCreated, Id, LevelDisplayName, Message
💡 Suggerimento
Per verificare i log disponibili:
wevtutil el | findstr OpenSSH
Utilizzare il nome restituito nel parametro -LogName.
Conclusione
Configurando OpenSSH Server su Windows Server, si ottiene una gestione remota sicura e compatibile con ambienti Linux/Unix.
Seguendo questi passaggi — dalla configurazione del servizio all’autenticazione a chiave e al firewall — è possibile creare un’infrastruttura di amministrazione remota affidabile e sicura.
