Inizio
/
Site Tools
/
Cos'è SSH e come si usa?

Cos'è SSH e come si usa?

SSH sta per Secure Shell protocol e probabilmente lo hai incontrato navigando nel mondo del web hosting. Protegge tutte le informazioni mentre sono in transito su una rete crittografandole. Grazie a questo protocollo di sicurezza, puoi gestire i tuoi file, trasferirli o modificarli ed eseguire comandi direttamente sul server.

In questo articolo, ci concentreremo su cosa significa SSH, come funziona, a cosa serve e cosa sono le chiavi SSH. Qui imparerai anche come stabilire una connessione SSH con il tuo server e i comandi più comuni a tua disposizione.

Cos’è SSH?

Dopo il suo sviluppo iniziale come strumento per affrontare le vulnerabilità che consentono attacchi di sniffing delle password, il protocollo ha guadagnato popolarità e si è evoluto. Successivamente, si è affermato come standard per la comunicazione sicura tra i dispositivi.

Definizione

SSH (Secure Shell) è un protocollo di rete che consente l’accesso remoto tramite una connessione crittografata. Fornisce un’autenticazione robusta e supporta l’accesso remoto sicuro, l’esecuzione di comandi, il trasferimento di file, il controllo degli accessi, l’inoltro TCP/IP, ecc.

Puoi gestire i tuoi file e cartelle tramite una connessione SSH, modificare i loro permessi, modificare i file direttamente sul server, ecc.

Funzionalità SSH spiegate

Il protocollo Secure Shell fornisce varie funzionalità di sicurezza e di seguito troverai un elenco delle più importanti:

  • Privacy dei tuoi dati – Secure Shell protegge i tuoi dati dalla divulgazione crittografandoli.
  • Integrità delle comunicazioni – Il protocollo Secure Shell garantisce che le informazioni scambiate rimangano inalterate.
  • Autenticazione – Questo protocollo richiede una prova di identità da parte di mittenti e destinatari per stabilire una connessione.
  • Autorizzazione – SSH consente anche di configurare il controllo degli accessi agli account, fornendo agli utenti diversi privilegi.
  • Inoltro/tunnel per crittografare sessioni basate su TCP/IP – Gli utenti possono impostare tunnel per trasferire traffico non crittografato su un canale di rete crittografato.

A cosa serve il protocollo Secure Shell?

Il protocollo Secure Shell ha un’ampia varietà di utilizzi; molto spesso, viene utilizzato dagli amministratori di sistema. È implementato di default nei server Unix, Linux, Windows e MAC. Questo protocollo sicuro crea un canale sicuro tra un computer locale e un server remoto, consentendo l’esecuzione di comandi, l’accesso alle risorse, il trasferimento di file, gli aggiornamenti delle prestazioni, ecc. È anche utilizzato in vari protocolli di trasferimento file, router, gestione hardware del server, e amministrazione dei sistemi operativi.

Inoltre, il protocollo Secure Shell serve per la gestione delle identità, il controllo degli accessi e l’automazione dei processi.

Quali sono i diversi metodi di autenticazione SSH?

In generale, ci sono due metodi di autenticazione SSH ampiamente utilizzati: autenticazione basata su password e autenticazione basata su chiave pubblica (PKI).

Autenticazione basata su password

In questo tipo di autenticazione, quando un client tenta di connettersi a un server remoto, identifica l’utente con un nome utente e una password. Quando un utente digita le proprie credenziali di accesso, il server controlla se sono presenti all’interno del suo database. Gli accessi sono condivisi su un canale crittografato; se corrispondono, il server consente al client di connettersi.

Sebbene le password siano il metodo convenzionale d’identificazione dell’utente, esiste sempre il rischio di compromissione. Per mantenere una corretta igiene delle password, è necessario impostare password complesse, modificarle regolarmente e mantenerle private.

Purtroppo, con il numero di credenziali che usiamo in questi giorni, potrebbe essere difficile per molti utenti. Questo crea le condizioni ideali per gli hacker per sfruttare le tue informazioni di accesso. Sebbene le password siano crittografate durante la transizione tra i computer remoti, sfortunatamente un attacco brute-force potrebbe ancora craccarle. Naturalmente, questo fatto rende le password un metodo di identificazione meno sicuro. La divulgazione delle tue credenziali SSH può consentire l’accesso root a un hacker, portando a terribili conseguenze.

Autenticazione PKI

L’autenticazione basata su chiave è il metodo preferito ed è consigliata rispetto all’autenticazione basata su password, che può essere forzata brutalmente.

L’autenticazione PKI utilizza chiavi crittografiche per stabilire una relazione di fiducia tra server e client. L’identificazione basata sulla chiave può richiedere una passphrase (password) o può funzionare senza una passphrase sulla chiave.

Per utilizzare questo tipo di autenticazione, è necessario generare una coppia di chiavi SSH. La coppia di chiavi è composta da una chiave pubblica e una privata. La chiave pubblica è conservata nel server, mentre la chiave privata è conservata nel tuo computer.

Quando ti connetti tramite Secure Shell, viene stabilita una relazione di fiducia tra il tuo computer e il server utilizzando la coppia di chiavi. Se manca una delle chiavi o c’è una discrepanza tra le chiavi, non è possibile stabilire una connessione.

Il metodo di autenticazione supportato da SiteGround è l’autenticazione PKI poiché fornisce una maggiore sicurezza per il tuo accesso SSH.

Architettura SSH e componenti

La Secure Shell ha un’architettura a più livelli, che incapsula 3 livelli principali: trasporto, autenticazione e connessione. In questa sezione esamineremo ciascuno di essi e i loro componenti, quindi continua a leggere.

Livello di trasporto

Di solito, il livello di trasporto utilizza il protocollo Internet (TCP/IP) Transmission Control Protocol sulla porta SSH di default n. 22. Questo livello si occupa dello scambio e dell’autenticazione della chiave iniziale, ne verifica l’integrità e avvia la crittografia/decrittografia. Comprime anche i dati trasmessi per accelerare il processo. Pertanto, svolge un ruolo importante nello scambio di informazioni sicuro tra host remoti.

In SiteGround, il numero di porta predefinito per SSH è 18765, deviando dalla porta predefinita 22 per un ulteriore miglioramento della sicurezza.

Nel corso della fase di scambio delle chiavi, il server si identifica con il client utilizzando una chiave host. Se ti connetti a quel server per la prima volta, il client ti chiederà se accetti questa chiave host e se lo fai, il client ne salva una copia localmente.

Accettare un nuovo host

Se confermi di voler continuare, il client memorizza la copia in un file chiave host conosciuta per riferimento futuro.

Nuovo host memorizzato in host conosciuti

In questo modo, in connessioni consecutive allo stesso server, il client dovrebbe solo verificare la chiave dell’host rispetto al record che contiene.

Livello di autenticazione

Quando il livello di trasporto ha impostato la crittografia, al client viene richiesto di autenticarsi utilizzando uno dei metodi supportati. Il livello di autenticazione utente fornisce una suite di algoritmi di autenticazione e si occupa dell’autenticazione del cliente.

Come accennato in precedenza, SiteGround consente solo l’autenticazione PKI e supporta i seguenti algoritmi di crittografia per coppie di chiavi pubbliche e private.

  • DSA
  • RSA
  • ECDSA
  • Ed25519

L’algoritmo crittografico predefinito per generare una coppia di chiavi su SiteGround è RSA, crittografia a 2048 bit, paragonabile a una password lunga 617 cifre.

Chiavi SSH

Una coppia di chiavi SSH è costituita da chiavi private e pubbliche utilizzate in un metodo di autenticazione con chiave SSH pubblica. In questo metodo di autenticazione, un file (noto come chiave privata) è in genere conservato dal lato del client e l’altro file (noto come chiave pubblica) è archiviato dal lato del server. Ogni coppia di chiavi SSH è unica, garantendo così l’accesso solo agli utenti con la coppia corretta.

  • Le Chiavi pubbliche consentono agli utenti di accedere a un server remoto e i server le utilizzano per crittografare i dati. Praticamente chiunque abbia la chiave pubblica SSH della coppia può crittografare i dati, ma solo l’utente con la chiave privata può decifrarli.

Quando il client invia la chiave pubblica al server SSH e il server conferma la sua autenticità, il server contrassegna la chiave come autorizzata. Quindi, le chiavi pubbliche sono anche chiamate chiavi autorizzate e sono memorizzate nel file authorized_keys nella home directory dell’account utente.

  • Le chiavi private sono anche chiamate chiavi di identità poiché sono la prova dell’identità dell’utente. Un utente può essere autenticato correttamente dal server solo se l’utente ha la chiave privata corrispondente alla chiave pubblica. Gli utenti devono mantenere riservate le loro chiavi private e astenersi dal condividerle con altri.
  • Una chiave di sessione è generata collettivamente dal client SSH e dal server. Questa chiave simmetrica viene utilizzata per crittografare l’intera sessione SSH. Entrambe le entità concordano una chiave di sessione da utilizzare in base ai dati della chiave pubblica e privata per generare un “segreto condiviso”. È condiviso dalle due parti in modo sicuro e viene utilizzato per crittografare e decrittografare i dati scambiati (ad esempio la crittografia simmetrica).

In questo modo, un intercettatore non può intercettare i dati in transito; quando la sessione è chiusa, la chiave di sessione viene distrutta.

Livello di connessione

Quando il processo di autenticazione viene completato con successo, viene avviata una connessione multiplexata al server in più canali. Ciascuno di questi canali logici trasferisce i dati in entrambe le direzioni, consentendo a molte sessioni di derivare da una singola connessione SSH.

Uno di questi canali è il Secure File Transfer Protocol (SFTP), che ti consente di accedere e trasferire file in modo sicuro tramite una connessione SSH

Come funziona SSH?

Come funziona SSH

Come probabilmente avrai capito, avrai bisogno di un client SSH per stabilire una connessione SSH al tuo server. Secure Shell funziona su un modello client-server, per cui il client SSH è un software che consente agli utenti di connettersi a un host remoto in modo sicuro.

Il client SSH avvia una richiesta di connessione SSH al server e il server SSH risponde con un messaggio casuale. Il client crittografa quel messaggio utilizzando la chiave privata e lo invia al server. Il server decritta quindi quel messaggio utilizzando la chiave pubblica corrispondente alla chiave privata del client. In questo modo, il server verifica che le chiavi pubblica e privata facciano parte di una coppia.

Una volta completato il controllo, entrambe le entità concordano su un segreto condiviso (chiave di sessione) da utilizzare per la sessione.

Quando viene stabilito il segreto condiviso, il client utilizza la chiave privata e di sessione per calcolare un valore con hash, che viene inviato al server. Nel frattempo, il server calcola anche un valore hash utilizzando la chiave di sessione e la chiave pubblica. Se entrambi i valori corrispondono, ciò dimostra che il client è il proprietario della chiave privata e il server concede l’accesso SSH al client.

Come generare e importare chiavi SSH

Finora, hai capito che il primo passo per stabilire una connessione SSH è generare una coppia di chiavi SSH.

Puoi farlo localmente o dal tuo account di web hosting se il tuo piano include l’accesso SSH. Tutti i piani SiteGround consentono l’accesso SSH in modo che i nostri clienti possano gestire efficacemente i loro siti web tramite SSH.

Questa sezione spiegherà come generare una coppia di chiavi dal tuo Site Tools , come farlo localmente e come importare la tua chiave SSH, quindi continua a leggere.

Genera una coppia di chiavi SSH da Site Tools

Se sei un cliente SiteGround, per generare nuove chiavi RSA, devi accedere al Site Tools per il sito a cui desideri consentire l’accesso. Una volta lì, vai alla sezione Sviluppatori > Gestioni Chiavi SSH dalla barra laterale, digita un nome per la chiave e imposta una password, quindi fai clic su Crea.

Crea chiave SSH Site Tools

Dopo che la coppia è stata creata, vedrai un messaggio “La chiave SSH è stata generata”. Puoi gestire tutte le tue chiavi dalla sezione Gestione chiavi SSH. Fai clic sul menu Azioni accanto al nome della chiave scelta per ottenere le chiavi privata e pubblica dalla coppia.

Gestisci chiavi SSH Site Tools

Dallo stesso menu, puoi anche specificare quali indirizzi IP (o intervalli IP) possono ottenere l’accesso con la coppia di chiavi, modificarne il nome o ottenere le credenziali SSH.

Poiché le chiavi SSH sono generate direttamente dal server, devi solo copiare la chiave privata e salvarla in un file di testo sul tuo computer.

Dallo stesso menu, puoi anche specificare quali indirizzi IP (o intervalli IP) possono ottenere l’accesso con la coppia di chiavi, modificarne il nome e ottenere le credenziali SSH.

Poiché le chiavi SSH sono generate direttamente dal server, devi solo copiare la chiave privata e salvarla in un file di testo sul tuo computer.

Genera una coppia di chiavi SSH localmente

In alternativa, puoi generare una coppia di chiavi SSH sul tuo computer locale; i passaggi variano a seconda del sistema operativo (SO).

Puoi utilizzare un client SSH per Windows per generare chiavi SSH chiamato PuTTY, e puoi seguire i passaggi in questo articolo su come farlo.

Mac OS ha un client SSH integrato chiamato Terminale, puoi trovarlo facilmente utilizzando la funzione di ricerca Spotlight premendo i tasti Spazio+Comando. Carica l’applicazione Terminale, digita “ssh-keygen -t rsa” nella riga di comando e premi Invio. Questo comando genererà una coppia di chiavi con l’ID SSH “rsa” e questo sarà il nome della coppia di chiavi. Per informazioni più dettagliate, consulta il nostro articolo Come creare chiavi SSH sul tuo Mac OS.

Gli utenti di Linux OS possono anche utilizzare il Terminale integrato per generare chiavi con lo stesso “ssh” -keygen”.

Dopo aver generato le chiavi, trovale nella posizione corrispondente del tuo computer e copia la chiave pubblica.

Come importare chiavi SSH su SiteGround

Per importare una nuova chiave SSH vai a Site Tools > Sviluppatori > Gestione chiavi SSH > Aggiungi nuovo > Importa. Inserisci il nome della chiave e incolla la chiave pubblica nel rispettivo campo. In alternativa, importala tramite il link Importa chiave da un file.

Importa chiave SSH Site Tools

Quando la chiave SSH pubblica viene importata lì, sarai in grado di gestire l’accesso ad essa tramite l’indirizzo IP. Puoi anche visualizzare la chiave SSH dal menu Azioni, anche se sarai in grado di vedere solo la chiave pubblica.

Come stabilire l’accesso SSH al tuo account di hosting

Ora che le tue chiavi SSH sono pronte, puoi seguire i passaggi negli articoli qui sotto per vedere come puoi connetterti a seconda del tuo sistema operativo.

Comandi SSH comuni

Per gestire i tuoi file tramite connessione SSH, dovrai acquisire almeno un set di comandi di base da utilizzare. Dai un’occhiata ai nostri tutorial SSH per imparare come elencare, creare un nuovo file/cartella, modificare o eliminare file e cartelle, creare ed estrarre archivi o gestire permessi e proprietà.

Per riassumere, in questo articolo, abbiamo spiegato cos’è il protocollo SSH, la sua architettura, quali sono le chiavi SSH e altri componenti. Abbiamo anche accennato a come funziona SSH, come generare o importare chiavi SSH e come connetterti al tuo account tramite SSH.

Condividi questo articolo