Come configurare OpenSSH su Windows
Un tempo, configurare SSH su Windows era un’impresa ardua: bisognava destreggiarsi tra client di terze parti come PuTTY o armeggiare con componenti server aggiuntivi. Ma in realtà, dall’aggiornamento di aprile 2018 (versione 1803), Windows ha iniziato a integrare OpenSSH come funzionalità opzionale.È una funzionalità interessante, ma non sempre è chiaro come farla funzionare senza problemi, soprattutto quando si desidera un’installazione affidabile per l’uso quotidiano. Questa guida illustra i metodi più comuni per installare e modificare OpenSSH, con alcuni suggerimenti per assicurarsi che funzioni davvero senza essere un vero grattacapo.
Alla fine, avrai una discreta padronanza dell’installazione di OpenSSH tramite GUI o PowerShell, della gestione delle stranezze di configurazione e della risoluzione dei fastidiosi errori di connessione. Devo dire che è piuttosto soddisfacente quando il server SSH funziona finalmente senza problemi sul tuo computer Windows: risparmia un po’ di ingombro di terze parti e rende l’accesso remoto un po’ più fluido. Tieni presente che a volte le cose non vanno alla perfezione, soprattutto con le regole del firewall o l’avvio dei servizi, quindi tieni gli occhi aperti.
Come installare OpenSSH su Windows
Se il tuo computer è compatibile, ovvero Windows 10 build 1809+ o Windows Server 2019+, installare OpenSSH non è un grosso problema. Ma attenzione, non è sempre semplice: passaggi meticolosi o errori improvvisi possono causare frustrazione. Ecco alcuni metodi affidabili per installarlo e renderlo operativo.
Metodo 1: utilizzo della GUI (funzionalità opzionali)
Questa è probabilmente la soluzione più semplice se preferisci cliccare piuttosto che digitare comandi.È semplice, ma a volte Windows non elenca tutto, quindi se non funziona, passa al metodo PowerShell.
- Premi Win + Iper aprire Impostazioni, quindi vai su App > Funzionalità opzionali.
- Fare clic su Visualizza funzionalità accanto a “Aggiungi una funzionalità facoltativa”.
- Scorri verso il basso e seleziona OpenSSH Client e OpenSSH Server. Fai clic su Avanti, quindi su Installa.
- Una volta terminato, esegui
services.msc(premi Win + R, digita, premi Invio).Trova OpenSSH SSH Server e OpenSSH Authentication Agent. - Fare doppio clic su ciascuna di esse, impostare il tipo di avvio su Automatico, se lo si desidera, quindi fare clic su Avvia.
- Torna indietro, apri Windows Defender Firewall con sicurezza avanzata ( Win + Rquindi digita
wf.msc) - Nelle regole in entrata, trova o crea una regola per OpenSSH SSH Server (sshd) e assicurati che sia abilitata, perché ovviamente Windows deve renderla più difficile del necessario.
- In pratica, la configurazione è completata. Consulta la sezione “Introduzione a OpenSSH” per scoprire come connetterti ora.
Metodo 2: PowerShell (consigliato per un maggiore controllo)
Se hai dimestichezza con la riga di comando e desideri maggiore controllo (e affidabilità), PowerShell è la soluzione ideale. Inoltre, gli script tendono a essere ripetibili su più macchine.
- Aprire una finestra di PowerShell con privilegi elevati: premere Win + R, digitare
powershell, quindi premere CTRL + Shift + Enter. - Controlla se OpenSSH è presente:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'. Se vedi “Installato: Falso”, devi installarlo. - Installa il client e il server:
Add-WindowsCapability -Online -Name OpenSSH. Client~~~~0.0.1.0eAdd-WindowsCapability -Online -Name OpenSSH. Server~~~~0.0.1.0. A volte, l’installazione richiede un po’ di tempo, soprattutto nelle build più vecchie. - Avviare e impostare i servizi su automatico:
Set-Service -Name sshd -StartupType 'Automatic' -Status RunningSet-Service -Name ssh-agent -StartupType 'Automatic' -Status Running - Assicurati che il traffico attraversi il firewall di Windows:
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Se questo non funziona, un altro trucco è verificare se i servizi sono effettivamente in esecuzione: puoi testarli con Get-Service sshd. E verifica sempre con ssh -Vper confermare la versione installata.
Metodo 3: utilizzo dei pacchetti MSI di GitHub
Se cercate l’MSI ufficiale dalla pagina di PowerShell, scaricate l’ultima versione da OpenSSH su GitHub. Quindi, installatelo tramite riga di comando:
msiexec /i <path-to-openssh.msi>
Supponiamo che il file MSI si trovi nella cartella Download; dovresti eseguire msiexec /i C:\Users\YourName\Downloads\openssh.msi. Per rimuoverlo in seguito, sostituisci /i con /x e il nome del file di conseguenza. Tieni presente che dopo l’installazione, probabilmente dovrai aggiungere `C:\Windows\System32\OpenSSH` al PATH del tuo sistema, in modo che Windows sappia dove trovare i comandi SSH.
Per farlo, apri Proprietà di sistema (Esegui systempropertiesadvanced), fai clic su Variabili d’ambiente, quindi in Variabili di sistema, modifica Percorso. Aggiungi %systemroot%\System32\OpenSSHse non è già presente. Riavvia il terminale o PowerShell per aggiornare il PATH.
Nota a margine: in alcune configurazioni, la modifica delle variabili d’ambiente potrebbe non funzionare immediatamente, quindi un riavvio o una disconnessione non sono una cattiva idea. Inoltre, verifica con Get-Service sshdper assicurarti che sia installato e funzioni correttamente.
Configurazione di OpenSSH per le tue esigenze
Il file di configurazione principale si trova in %programdata%\ssh\sshd_config. Le modifiche qui possono modificare praticamente tutto: porte, utenti consentiti, indirizzi IP in ascolto, metodi di autenticazione, e così via. Ma attenzione, non tutte le impostazioni sono ancora supportate su Windows, quindi non esagerare senza consultare la documentazione ( guida ufficiale ).
Alcune modifiche comuni includono:
- Modifica della porta : se si desidera utilizzare SSH su una porta diversa dalla 22, è sufficiente rimuovere il commento e specificare un numero diverso. Non dimenticare di aprire quella porta in Windows Firewall, altrimenti SSH non sarà in ascolto su quella porta.
- Imposta ListenAddress per limitare SSH a un IP specifico, particolarmente utile sui server multi-IP.
- Se è necessaria l’autenticazione Kerberos/GSSAPI, impostare GSSAPIAuthentication su sì.
- Utilizza AllowUsers e AllowGroups per limitare chi può connettersi: molto utile se non vuoi che tutti possano connettersi tramite SSH. Per gli account di dominio, segui il formato:
AllowUsers domain\username, mentre per gli account locali, usa solo il nome utente.
Dopo aver modificato sshd_config, riavvia sempre il servizio: net stop sshd & net start sshdo tramite PowerShell: Restart-Service sshd. Se salti questa fase, le modifiche non avranno effetto.
Inizia con OpenSSH
Una volta installato, l’impostazione di SSH riguarda principalmente la connessione da un client. Se ci si trova sulla stessa rete Windows o sullo stesso dominio, il comando di base è simile a ssh username@hostname. Per gli account di dominio, potrebbe essere necessario specificare le credenziali o utilizzare la sintassi corretta, ad esempio ssh domain\username@hostname.
Al primo accesso, ti verrà chiesto di autorizzare l’impronta digitale dell’host. Confermala (digita “Sì”) e il tuo computer la ricorderà per la prossima volta. Dovrai fornire la password (o impostare l’autenticazione basata su chiave in un secondo momento per una maggiore sicurezza).All’inizio potrebbe sembrare strano, ma è molto più veloce e sicuro rispetto all’utilizzo di RDP o altre soluzioni remote.
Vuoi migliorare le tue prestazioni? Configura Kerberos, invia le chiavi SSH e stabilisci chi può accedere: è più complicato, ma ne vale la pena per la sicurezza.
Gestire i problemi comuni di SSH
Se SSH rifiuta la connessione o genera errori di porta come “Connessione rifiutata” o “Timeout”, ecco cosa controllare prima:
- Il servizio SSH è effettivamente in esecuzione? Eseguilo
Get-Service sshde assicurati che sia “In esecuzione”. - Le regole del firewall sono abilitate? Conferma con
New-NetFirewallRulei comandi o controlla l’elenco delle regole. - La porta SSH (predefinita 22) è aperta e in ascolto? Se necessario, utilizzare
netstat -ano | findstr :22Netsh portproxy. - L’output dettagliato SSL può essere utile: eseguilo
ssh -vvv username@hostper vedere dove si blocca o fallisce.
A volte, un rapido riavvio o un riavvio del servizio SSH risolve strani problemi di connettività. Se il problema persiste, controllare i log %programdata%\ssh\logspuò rivelare ulteriori indizi. Non dimenticare di ricontrollare le regole del firewall e la configurazione delle porte se le cose non funzionano dopo aggiornamenti o modifiche alla rete.