Le connessioni aperte e tra i dispositivi durante il traffico sono canali di comunicazione non sicuri. Per ridurre il rischio di intercettazioni o spoofing del traffico, il protocollo SSH viene utilizzato per eseguire comandi di accesso host sicuro, eseguire client remoti e inoltrare traffico crittografato.
Indice dei contenuti
Cos’è la Secure Shell
SSH (Secure Shell) è un protocollo di rete che fornisce un accesso sicuro ai computer remoti perché crittografa tutte le comunicazioni tra client e server. In altre parole, SSH consente di costruire un cosiddetto tunnel SSH, a un’estremità del quale i dati vengono crittografati e inviati e all’altra estremità vengono ricevuti e decrittati. I dati si spostano attraverso il tunnel crittografati.
Ad oggi esistono due versioni del protocollo: SSH1 e SSH2, il secondo è più sicuro. È un protocollo molto versatile che può essere utilizzato per una varietà di attività come l’amministrazione remota di server, l’accesso a file remoti e il debug di problemi di rete.
Uno dei principali vantaggi di SSH è che crittografa tutto il traffico tra il client e il server, rendendo difficile per gli utenti non autorizzati lo sniffing della connessione.
SSH è incluso nella maggior parte delle distribuzioni Linux e Mac OS X e può essere installato anche su sistemi Windows. Esistono molti client SSH diversi, sia gratuiti che commerciali. Il client SSH più popolare è PuTTY.
I livelli del protocollo SSH
SSH è costituito da tre protocolli separati: il livello di trasporto, il livello di autenticazione e il livello di connessione. Insieme, servono per autenticare l’altro lato della connessione, fornire riservatezza attraverso la crittografia e controllare l’integrità dei dati. Attualmente, SSH è più comunemente utilizzato come SSH-2 nativo o come iterazione open source di OpenSSH.
- Il protocollo del livello di trasporto (SSH-TRANS) fornisce l’autenticazione, la riservatezza e l’integrità del server. Questo protocollo può anche fornire la compressione delle informazioni. Il livello di trasporto funziona principalmente con connessioni TCP/IP, ma può essere implementato con altri flussi di dati con recapito garantito. È un protocollo di controllo della comunicazione. Con esso, il server remoto e l’utente possono scambiare dati.
- Il protocollo di autenticazione utente (SSH-USERAUTH) viene utilizzato sui server per verificare le credenziali dei client. Questo protocollo funziona sulla base del protocollo del livello di trasporto.
- Il protocollo di connessione (SSH-CONNECT) esegue il multiplexing di un tunnel crittografato in più canali logici e viene eseguito su un protocollo di autenticazione utente.
Il client invia una richiesta di servizio nel processo di stabilire una connessione sicura a livello di trasporto. Un’altra richiesta di servizio viene inviata dopo la corretta verifica delle credenziali del cliente. Questa soluzione prevede la possibilità di creare nuovi protocolli e il loro utilizzo congiunto con i protocolli sopra elencati.
Come funziona una SSH?
È possibile stabilire una connessione SSH sicura solo se nel processo sono coinvolti due sistemi: un client e un server.
Un client SSH è un dispositivo locale da cui l’utente esegue il controllo remoto. Un server SSH è una macchina remota gestita. La macchina è controllata da vari comandi che vengonogestiti dall’interprete dei comandi (shell).
È importante capire che è possibile connettersi al server solo se su di esso è installato un software speciale: Deamon. Senza di esso, l’utente non sarà in grado di accedere al server e non sarà in grado di utilizzare porte SSH sicure durante lo scambio di dati. Questa condizione si applica anche al dispositivo dell’utente: su di esso deve essere in esecuzione uno speciale programma client. Ad esempio, su sistemi operativi come Linux, il programma OpenSSH è installato per impostazione predefinita. E gli utenti Windows utilizzano più spesso l’utilità software Putty. Questa interazione sicura tra client e server è chiamata sessione SSH.
Quando ti connetti a un server, SSH è responsabile di stabilire una connessione crittografata in modo che i dati possano essere inviati avanti e indietro in modo sicuro. Per la crittografia, SSH utilizza chiavi speciali che codificano tutti i dati trasmessi tra il client e l’host. Il protocollo SSH utilizza tre diversi metodi di crittografia: tecnologia simmetrica, asimmetrica e hash.
Tutti i comandi utilizzati sul client SSH vengono inviati tramite un canale di comunicazione sicuro al server SSH su cui vengono eseguiti e da dove inviano il risultato del lavoro al client.
Server SSH
Viene installato su un sistema operativo gestito e accetta connessioni in entrata dai computer client, controllando la connessione in uno dei seguenti modi:
- dall’indirizzo IP del client, che non è molto sicuro a causa del rischio di spoofing;
- dalla chiave pubblica e dal nome utente del client. È necessario creare una chiave privata (chiusa) e pubblica (pubblica). Una volta che le informazioni sono crittografate con una chiave, possono essere decifrate solo con un’altra;
- dalla password del cliente, che viene trasmessa in forma crittografata. Questa è una delle opzioni più comuni. Devi inserirla ogni volta che ti connetti.
Esistono server SSH a pagamento e gratuiti per tutti i sistemi operativi comuni:
- BSD – OpenSSH
- Linux – dropbear, lsh-server, openssh-server
- Windows: freeSSHd, copssh, WinSSHD, OpenSSH, ecc.
Client SSH
Utilizzato per accedere a un server remoto ed eseguire vari comandi. Il client gestisce il computer remoto, tra cui:
- gestione di file e directory;
- visualizzazione e modifica di file;
- controllo dei processi di lavoro;
- gestione archivi, database MySQL, ecc.
I client SSH sono progettati per tutti i sistemi operativi desktop e mobili. Hanno versioni a pagamento e gratuite:
- per Linux/BSD – openssh-client, putty, ssh, Vinagre;
- MS Windows – PuTTY, SecureCRT, ShellGuard;
- android – connectbot
- Linux e MacOS hanno un client SSH integrato, non è richiesta alcuna configurazione aggiuntiva.
Il client Windows SSH integrato basato su OpenSSH è preinstallato con il sistema operativo a partire da Windows 10 1809.
Come creare una SSH
Il dispositivo dell’utente connesso tramite SSH può inviare comandi, ricevere o inviare file. Il protocollo SSH viene eseguito sulla porta 22 per impostazione predefinita.
Per lavorare con il server utilizzando la riga di comando di Linux, l’utente deve abilitare l’opzione “Accesso SSH” e connettersi al proprio server utilizzando un client SSH utilizzando il login e la password del proprio account personale. Il client SSH-Linux è preinstallato su tutte le versioni del sistema operativo Linux. L’accesso SSH è preconfigurato anche sui server che eseguono Linux.
Per utilizzare SSH, un utente Linux deve solo avviare un terminale (questo è il nome della riga di comando in Linux) e digitare il comando:
ssh user@host, dove user è il nome utente sul server remoto;
host è l’indirizzo del server stesso.
Il sistema richiederà all’utente di inserire una password, quindi verrà stabilita una connessione a un computer server remoto e l’utente sarà in grado di iniziare a lavorarci a pieno titolo. Nel caso di un metodo di crittografia asimmetrico, non è richiesto l’inserimento di una password, l’autenticazione avviene mediante corrispondenza di chiavi univoche tra il client e il server.
Sulla piattaforma Windows è stato sviluppato un software speciale per l’utilizzo del protocollo SSH: client SSH. Il più popolare è il client PuTTY Windows SSH, che supporta tutti i moderni standard di crittografia per SSH. Per usarlo, devi scaricare PuTTY dal sito Web ufficiale sul tuo computer locale. All’avvio, il client PuTTY SSH ti chiederà di inserire l’indirizzo IP dell’host a cui connetterti. Si aprirà quindi una finestra di terminale che richiederà un nome utente e una password, dopodiché l’utente si connetterà al server remoto.
SSH è un protocollo comodo per lo scambio di informazioni tra dispositivi remoti, che consente di modificare in remoto i file da un computer all’altro, utilizzando il computer dell’utente e l’hosting virtuale in cui si trovano i progetti.
Desideri parlare con un nostro esperto? Contattaci
Ultime News Data Center
-
Mercato cloud in Italia: tendenze e numeri da osservare
5 Settembre 2024 -
Quali sono le differenze tra SQL Server e Oracle?
13 Maggio 2024 -
Cos’è e come fare monitoraggio di Microsoft SQL Server
23 Aprile 2024 -
Guida SQL Server, tutto quello che devi sapere
19 Aprile 2024 -
FaaS: Cos’è, Come funziona, Vantaggi, Casi d’uso ed Esempi
26 Febbraio 2024