ssh
Cos’è SSH e come funziona?
Una guida semplice a SSH: cos’è, come protegge l’accesso remoto al server e a cosa deve fare attenzione chi inizia.
Hai appena ottenuto accesso a un server, e tutti continuano a dirti “entra via SSH” come se quelle tre lettere spiegassero tutto il lavoro.
In breve: SSH, abbreviazione di Secure Shell, è un modo sicuro per controllare un server remoto via internet. Apre una connessione cifrata tra il tuo computer e il server, poi ti permette di dimostrare che hai il permesso di entrare usando una password o, in modo più sicuro, una chiave crittografica. Una volta connesso, puoi gestire file, leggere log, riavviare servizi e risolvere problemi senza essere fisicamente vicino alla macchina.
Cos’è SSH?
SSH è un telecomando protetto per un server.
Immagina il tuo server come una stanza chiusa a chiave in un altro edificio. SSH è il corridoio privato per arrivare a quella stanza. Invece di andare lì, collegare tastiera e schermo, apri una connessione sicura dal tuo computer e scrivi le istruzioni da lì.
La parte “shell” indica un pannello di controllo testuale, spesso chiamato terminale o riga di comando. Sembra più drammatico di quanto sia. È solo un posto in cui scrivi istruzioni precise invece di cliccare pulsanti.
SSH non è una singola app. È un protocollo, cioè un insieme condiviso di regole per comunicare in modo sicuro. L’implementazione più comune è OpenSSH, integrata in molti sistemi Linux e macOS e molto usata sui server.
Le persone usano SSH per aggiornare software, controllare cartelle, modificare impostazioni, leggere messaggi di errore, spostare file e recuperare siti che non funzionano. Se qualcosa si rompe, SSH è spesso il modo in cui ti avvicini abbastanza da capire cosa è successo. Per esempio, una volta connesso, imparare come leggere i log del server diventa molto più semplice.
Come funciona SSH?
SSH ha due lati: un client e un server.
Il client è lo strumento SSH sul tuo computer. Il lato server è un piccolo servizio in esecuzione sulla macchina remota, di solito in attesa di connessioni sulla porta 22. Una porta è come una porta numerata per entrare nel server; la porta 22 è quella tradizionale per SSH.
Quando ti connetti, SSH fa una breve conversazione di sicurezza prima di lasciarti entrare.
Per prima cosa, il tuo computer e il server concordano come cifrare la conversazione. Cifrare significa rendere i dati illeggibili per gli estranei mentre viaggiano su internet.
Secondo, il tuo computer controlla la chiave host del server. È come se il server mostrasse un documento d’identità. Se quell’identità cambia all’improvviso, potresti vedere l’avviso “REMOTE HOST IDENTIFICATION HAS CHANGED!”. Quell’avviso può essere innocuo dopo una reinstallazione, ma può anche significare che non stai parlando con la stessa macchina. Vale la pena fermarsi e controllare.
Terzo, dimostri la tua identità. Può avvenire con una password, ma molte configurazioni usano una coppia di chiavi SSH. Una coppia di chiavi ha due parti: una chiave privata che resta sul tuo computer e una chiave pubblica messa sul server. Il server può verificare che la tua chiave privata corrisponda senza vedere mai la chiave privata stessa.
Una buona metafora è una cassetta della posta. Chiunque può conoscere la fessura pubblica in cui inserire i messaggi, ma solo la persona con la chiave privata può aprire la cassetta.
Perché si preferiscono le chiavi SSH alle password?
Le password sono facili da capire, ma sono anche facili da attaccare.
Un server pubblico può ricevere infiniti tentativi di accesso da bot automatici. Se SSH accetta password, quei bot possono continuare a provare nomi comuni e password deboli. Anche le password robuste possono diventare rischiose se vengono riutilizzate altrove o incollate nel posto sbagliato.
Le chiavi SSH sono più difficili da indovinare perché non sono parole create da una persona. Sono lunghi segreti crittografici. Quando sono protette da una passphrase, una chiave SSH è più simile a una carta di credito più un PIN: rubare una sola parte non basta.
Ecco perché molti proprietari di server abbandonano l’accesso con password e usano invece l’accesso basato su chiavi. Riduce la possibilità che una scansione casuale su internet diventi una vera intrusione.
Detto questo, le chiavi SSH non sono magiche. Se perdi la chiave privata, potresti perdere l’accesso. Se la copi ovunque, indebolisci il senso stesso di averla. Se dimentichi quale chiave appartiene a quale server, la manutenzione futura diventa confusa.
SSH è sicuro?
SSH è sicuro quando sono sicure anche le abitudini intorno.
Il protocollo in sé è progettato per l’accesso remoto sicuro. I problemi comuni di solito nascono da configurazioni disordinate: password deboli, software vecchio, account esposti, chiavi perse o nessun elenco chiaro di chi può accedere.
La stringa di errore “Permission denied (publickey)” è un esempio comune. Significa che il server non ha accettato la chiave offerta dal tuo computer. Potrebbe succedere perché è stata usata la chiave sbagliata, il nome utente è errato, la chiave pubblica manca sul server o il server permette solo l’accesso con chiave.
Anche il firewall conta. Un firewall decide quali porte del server sono aperte dall’esterno. In generale vuoi tenere aperte solo le porte che ti servono davvero. Se questo concetto è nuovo per te, parti da come configurare un firewall sul server.
Contano anche i backup. SSH ti dà potere, e il potere include la possibilità di cancellare o danneggiare cose importanti. Prima di fare modifiche serie, assicurati di poter ripristinare il server, invece di sperare soltanto che non vada storto nulla. Ecco una guida semplice su come fare il backup del server.
FAQ
SSH è la stessa cosa del terminale?
No. Il terminale è la finestra testuale in cui scrivi. SSH è la connessione sicura che permette a quel terminale di controllare un server remoto.
Cos’è la porta 22?
La porta 22 è la porta di rete predefinita usata da SSH. Dice al server: “questa connessione è per l’accesso remoto”.
Mi serve SSH per gestire un sito web?
Non sempre, ma spesso è utile. SSH ti aiuta a controllare problemi, gestire file e fare manutenzione quando una dashboard web non basta.
Cosa significa “Permission denied (publickey)”?
Significa che il server si aspettava una chiave SSH accettata, ma il tuo computer non ne ha fornita una di cui il server si fidi.
La gestione centralizzata
Server Manager ti aiuta a mantenere comprensibile il lavoro normale sul server senza costringerti a vivere dentro SSH ogni giorno. Il punto non è nascondere che SSH existe; è ridurre quanto spesso un piccolo errore si trasforma in una lunga sessione di terminale.
Il vantaggio concreto è evitare il caos di cui parla questo articolo: perdere traccia di quale progetto vive dove, dimenticare come è stato configurato l’accesso, lasciare poco chiare porte importanti o tornare mesi dopo su un server che non ha più senso. App, domini, certificati e componenti in esecuzione restano leggibili invece di diventare un mucchio di comandi da ricordare.
Il vero beneficio è che SSH diventa uno strumento che usi quando ti serve, non l’unica mappa che hai.
Cosa dovresti ricordare su SSH?
SSH è semplicemente accesso remoto sicuro al tuo server. Ti permette di lavorare dal tuo computer proteggendo la connessione dagli estranei.
Una volta capite le basi — client e server, chiavi host, chiavi SSH, porta 22 ed errori comuni come “Permission denied (publickey)” — il mistero sparisce. Serve comunque attenzione, ma non stai più fissando tre lettere che tutti gli altri si sono dimenticati di spiegare.