Cos’è SSH e come funziona?

SSH è un protocollo di rete protetto per accedere a computer remoti in una rete.

I computer parlano tra loro attraverso le reti. Quindi, i ricercatori di rete hanno definito un insieme di regole per comunicare con altre macchine e hanno iniziato a sviluppare protocolli come Telnet; utilizzandolo, un utente può assumere il controllo di un altro computer.

Ma non sono sicure, cioè chiunque si trovi nel mezzo della rete può intercettare e leggere i dati trasferiti. A metà degli anni ’90, è stato introdotto un protocollo più sicuro chiamato ssh come affidabile successore del protocollo telnet.

Se sei uno sviluppatore di software o un amministratore di sistema che lavora in un settore, potresti aver usato ssh almeno una volta. Se non l’hai fatto, impariamolo ora, poiché è una delle abilità essenziali da conoscere.

Che cos’è SSH?

SSH o Secure Shell o Secure Socket Shell è un protocollo di rete che ci aiuta ad accedere e comunicare in modo sicuro con macchine remote (principalmente server remoti).

Fornisce una crittografia avanzata ed è ampiamente utilizzato dagli amministratori di rete e dagli sviluppatori per gestire sistemi e applicazioni remoti, eseguire comandi, condividere file, ecc.

Necessità di SSH

SSH è stato creato nel 1995 per risolvere i problemi di sicurezza affrontati da protocolli di accesso remoto non protetti come rlogin, sh, Telnet.

Ora parliamo di Telnet, che sta per Teletype Network sviluppato nel 1969. È un semplice strumento a riga di comando che viene eseguito sul tuo computer per accedere a un server remoto (ovunque situato nel globo). E invia i comandi da eseguire su quel server, proprio come se fossi seduto proprio davanti al server remoto (anche a miglia di distanza dal server). Telnet trasmette e riceve messaggi in testo normale su una rete.

I comandi che eseguiresti potrebbero essere per eseguire programmi, creare directory, creare/eliminare/trasferire file, avviare/arrestare servizi, ecc.

Il problema con la connessione di un’altra macchina in una rete è che i dati trasmessi passeranno attraverso molte reti. Nel frattempo, alcuni dei quali potrebbero essere insicuri e i dati trasmessi potrebbero essere intercettati, eventualmente modificati prima che raggiungano la macchina di destinazione prevista.

All’inizio, quando la sicurezza non era così importante, tutte le comunicazioni avvengono in chiaro. Pertanto, i dati trasmessi su Internet tra client e server possono essere facilmente intercettati. E può essere letto poiché i messaggi non sono crittografati.

Pertanto, i protocolli in chiaro sono estremamente insicuri e non possono mai essere utilizzati per la trasmissione di dati sensibili come password, segreti, ecc. Pertanto, SSH viene considerato un’alternativa sicura ai protocolli di rete di accesso remoto legacy.

Come funziona?

SSH utilizza un’architettura client-server per la comunicazione sicura sulla rete collegando un client ssh con il server ssh. Per impostazione predefinita, il server ssh ascolta la porta TCP standard 22 (è possibile modificarla per una maggiore sicurezza).

Utilizza una tecnica di crittografia a chiave pubblica per l’autenticazione tra client e server. Inoltre, il protocollo utilizza una forte crittografia simmetrica e algoritmi di hashing per lo scambio di messaggi tra client e server per garantire la privacy e l’integrità dei dati.

Linux è il sistema operativo ampiamente utilizzato per i server remoti a causa della sua sicurezza e durata. Molti server che utilizzano il sistema operativo Linux su Internet sono in esecuzione da anni senza molti guasti o addirittura riavviati.

La maggior parte delle sessioni SSH (un periodo in cui accediamo al server remoto) avrà solo le seguenti due operazioni:

  • Autenticazione
  • Esecuzione del comando

I server SSH possono autenticare i client utilizzando una varietà di metodi.

E i due modi popolari sono:

L’autenticazione basata su password è il metodo predefinito utilizzato per l’autenticazione per ApriSSH client installati. È l’autenticazione ssh più semplice ma non la più sicura.

Anche se le password vengono inviate al server in modo sicuro, i moderni attacchi di forza bruta possono aggirare l’autenticazione.

L’autenticazione basata su chiave migliora ulteriormente la sicurezza del sistema generando coppie di chiavi SSH, che si rivela un’alternativa affidabile e sicura.

Dopo che il server ha autenticato correttamente il client, viene stabilita una connessione sicura tra di loro.

Accesso al server remoto tramite SSH

Se sei un utente Mac/Linux, puoi utilizzare direttamente il terminale per digitare ed eseguire i comandi ssh, poiché OpenSSH è già installato per impostazione predefinita.

Se sei un utente Windows, devi installare un client emulatore di terminale di terze parti per eseguire i comandi ssh. Stucco è il client ssh più popolare per il sistema operativo Windows.

Per connetterti a un server remoto tramite SSH, devi sapere almeno due cose.

La sintassi per il comando ssh di base è:

$ ssh <user-name> @ <host> -p <port-no>

Il nome utente è il nome utente della macchina remota che stiamo tentando di connettere (e non l’utente sulla tua macchina locale) e l’host è un indirizzo IP o un nome di dominio.

Diamo un’occhiata a un esempio di connessione a un server remoto utilizzando il file OverTheWire sito web. È un sito Web di sfide di wargame gratuito.

Ora, colleghiamoci al bandito sfida usando ssh. È una delle sfide disponibili sul sito Web che insegna come accedere utilizzando SSH.

Credenziali:

nome utente e password: bandit0
host e porta: bandit.labs.overthewire.org, 2220

Quando digiti il ​​seguente comando e premi Invio:

$ ssh [email protected] -p 2220

Ti chiederà la password per l’autenticazione. Ora digita la password e premi invio:

Se la password digitata è corretta, hai effettuato correttamente l’accesso al server remoto e il tuo terminale avrà l’aspetto dell’immagine sopra.

Ora puoi utilizzare il terminale della macchina remota per digitare ed eseguire i tuoi comandi ed eseguire le tue operazioni necessarie.

Quando vuoi terminare la sessione ssh, digita il comando exit:

$ exit

Riceverai un messaggio, “Connessione chiusa” quando ti disconnetti correttamente dalla sessione ssh.

Conclusione

Il motivo principale alla base della popolarità di SSH è che l’intera comunicazione tra server e client è crittografata.

La maggior parte delle persone presume che l’uso di ssh sia complesso e acquisire conoscenze su come funziona non sia facilmente comprensibile, ma è più semplice di quanto si pensi. Ora hai una conoscenza di base di SSH, come funziona, gli aspetti di sicurezza dietro di esso e perché svolge un ruolo vitale nella comunicazione.

Successivamente, esplora alcune delle risorse per diventare amministratore di sistema.