Cos'è SSH e i principali modi di lavorare con esso

Cos'è SSH e i principali modi di lavorare con esso

SSH (Secure Shell) — è un protocollo per la connessione remota sicura a un server e la sua gestione tramite riga di comando. Dopo aver affittato un server — VPS/VDS o dedicato — SSH diventa spesso lo strumento principale per l'amministrazione del sistema. In questo articolo vedremo come funziona la connessione SSH, come connettersi a un server da Windows, macOS o Linux, e quali strumenti possono semplificare il lavoro con SSH: PuTTY, Midnight Commander e il terminale standard.

Che cos'è SSH e a cosa serve

SSH (Secure Shell, «shell sicura») — è un protocollo di rete utilizzato per la gestione remota di server e altri dispositivi. Permette di trasmettere in modo sicuro comandi e dati attraverso una connessione crittografata.

SSH è stato creato come alternativa più sicura al protocollo Telnet, che trasmetteva dati in chiaro, inclusi login e password. A differenza di Telnet, SSH utilizza la crittografia e meccanismi di verifica dell'integrità dei dati, aumentando notevolmente la sicurezza della connessione.

Durante l'affitto di un VPS/VDS o di un server dedicato, l'utente di solito ottiene accesso a un pannello di controllo o a un'interfaccia web. Tuttavia, molte attività amministrative vengono eseguite proprio tramite SSH — specialmente quando è necessario avere il pieno controllo sul sistema o accedere a funzionalità non disponibili nell'interfaccia grafica.

SSH viene utilizzato per diverse ragioni:

  • Amministrazione rapida. Tramite la riga di comando molte azioni vengono eseguite più velocemente rispetto all'interfaccia web, specialmente durante un lavoro regolare con il server.
  • Funzionalità di gestione avanzate. Alcuni strumenti di sistema, servizi e impostazioni sono disponibili solo tramite la console.
  • Lavoro con framework e CMS. Alcuni strumenti per lo sviluppo e l'amministrazione di siti web (ad esempio Composer, Drush o WP-CLI) funzionano tramite SSH.

Anche una comprensione di base di SSH semplifica notevolmente il lavoro con il server, offre maggiore controllo sul sistema e consente di eseguire più rapidamente le attività amministrative.

Leggi anche: WordPress: come proteggere il tuo sito e evitare vulnerabilità del codice aperto

Differenze tra Web SSH e VNC per accesso remoto

SSH — è un protocollo di accesso remoto, non un programma separato. Per connettersi a un server tramite SSH si utilizzano di solito client specializzati, come PuTTY, OpenSSH o il terminale standard in Linux e macOS. Inoltre, l'utente deve conoscere l'indirizzo del server, il login, la password o le chiavi SSH e i comandi di base per lavorare nella console.

Per i principianti, tale connessione può non essere molto comoda: un errore nell'indirizzo del server, parametri di accesso errati o limitazioni di rete possono ostacolare l'instaurazione della connessione.

Proprio per questo molti provider di hosting offrono Web SSH — accesso al terminale SSH tramite browser senza installare programmi aggiuntivi. In questo caso, la connessione al server avviene tramite l'interfaccia web del pannello di controllo, e l'utente ottiene accesso alla console direttamente nel browser.

Oltre a Web SSH, nei pannelli di controllo VPS/VDS sono spesso disponibili VNC o Web VNC. A differenza di SSH, VNC non fornisce accesso alla riga di comando, ma un controllo remoto completo dell'interfaccia grafica del server — praticamente come se si stesse lavorando direttamente su di esso.

Web VNC funziona in modo simile, ma si apre direttamente nel browser senza la necessità di installare un client VNC separato.

Pannello di controllo del server e utilizzo di VNC

Web VNC — è una tecnologia di accesso remoto che consente di gestire un computer o un server tramite un'interfaccia grafica. Una delle caratteristiche di Web VNC è la possibilità di connettersi tramite browser senza installare un client VNC separato. Questo accesso funziona indipendentemente da SSH e può essere utile nei casi in cui si verificano problemi di accesso al server.

Ad esempio, se un utente ha accidentalmente bloccato l'accesso SSH, ha configurato in modo errato i parametri di rete o ha perso l'accesso alle credenziali, Web VNC consente di accedere al server e correggere le impostazioni.

Allo stesso tempo, VNC e Web VNC sui server di solito non vengono utilizzati per l'amministrazione permanente, ma per accesso di emergenza, diagnostica o configurazione iniziale del sistema nei casi in cui SSH non è disponibile.

Come effettuare una connessione SSH a un VDS o server dedicato

Se sul computer è installato Linux o macOS, connettersi tramite SSH è abbastanza semplice, poiché questi sistemi operativi hanno già un terminale integrato con supporto SSH. In Windows, la situazione era precedentemente più complessa, ma in Windows 10 e versioni successive è disponibile anche un client SSH integrato.

Vediamo come effettuare una connessione SSH al server tramite il terminale.

In Linux, il terminale può essere aperto con la combinazione di tasti Ctrl + Alt + T. In macOS, per farlo, premi Command + Space e digita nella ricerca la parola «Terminale».

Dopo aver aperto il terminale, digita il comando:

ssh login@servername

dove login — è il nome utente del server, e servername — è l'indirizzo IP o il nome di dominio del server. Questi dati vengono solitamente inviati dal provider di hosting dopo l'attivazione del servizio e sono disponibili nel pannello di controllo.

Dopo aver eseguito il comando, il sistema chiederà di inserire la password. Se i dati sono corretti, verrà stabilita una connessione SSH e si otterrà accesso alla gestione del server tramite la console.

Ad esempio, ecco come appare il processo di connessione a un server in Linux Ubuntu.

Connessione al server su OS Linux

Il client SSH più comune per Windows è stato a lungo PuTTY.

In Windows 10 e versioni successive, il client SSH OpenSSH è di solito già integrato nel sistema, ma in alcuni casi deve essere attivato separatamente. Per farlo, apri la sezione «Componenti aggiuntivi» nelle impostazioni di Windows e assicurati che il componente OpenSSH Client sia installato.

Abbiamo esaminato i passaggi di base per la connessione SSH al server utilizzando questo protocollo. A seconda del sistema operativo, della configurazione del server e delle impostazioni di accesso, la procedura di connessione può variare. Se si riscontrano difficoltà, è consigliabile contattare il supporto del provider di hosting.

Dopo una connessione riuscita tramite SSH, l'utente ottiene accesso a un ampio set di strumenti per l'amministrazione del server. Vediamo ora le funzionalità di base del lavoro tramite SSH, che saranno utili anche per i principianti.

Comandi di base SSH

Dopo la connessione tramite SSH, l'utente ottiene accesso alla riga di comando del server. Per lavorare con file, directory e processi si utilizzano comandi standard di Linux. Ecco alcuni dei comandi di base SSH:

  • ls — mostra il contenuto della directory corrente.
  • cd — utilizzato per navigare tra le directory. Ad esempio: cd foldername.
  • mkdir — crea una nuova directory. Ad esempio: mkdir foldername.
  • touch — crea un nuovo file. Ad esempio: touch filename.
  • rm — elimina file e directory.
  • cat — visualizza il contenuto di un file nella console.
  • pwd — mostra il percorso completo della directory corrente.
  • cp — copia file e directory.
  • mv — sposta o rinomina file e directory.
  • grep — esegue la ricerca di testo nei file. Ad esempio: grep "frase" filename.
  • find — cerca file e directory in base ai parametri specificati.
  • vi / nano — editor di testo per lavorare con file tramite console.
  • history — mostra la cronologia dei comandi eseguiti.
  • kill — termina un processo in base al suo PID.
  • killall — termina processi in base al nome.
  • rsync — utilizzato per copiare e sincronizzare file e directory.
  • wget — scarica file da un URL.
  • zip e unzip — creano e estraggono archivi ZIP.
  • df -h — mostra informazioni sull'uso dello spazio su disco.

Questi comandi aiutano a eseguire l'amministrazione di base del server, lavorare con file, visualizzare informazioni di sistema e gestire processi tramite SSH.

Midnight Commander

Midnight Commander (mc) — è un gestore di file da console per sistemi Linux e Unix-like, che semplifica il lavoro con file e directory tramite terminale.

Le principali funzionalità di Midnight Commander:

  • lavoro con archivi e sistemi di file di rete (Samba, FTP, SFTP);
  • copia e spostamento di file in background;
  • editor di testo integrato con evidenziazione della sintassi;
  • supporto per il lavoro tramite SSH e altre connessioni remote;
  • supporto per mouse, UTF-8 e interfaccia multilingue.

Dopo esserti connesso al server tramite SSH, digita nel terminale il comando: mc

Accesso al server tramite Midnight Commander con il comando mc

Monitoraggio del carico del server

Per monitorare lo stato del server e i processi attivi, si utilizza spesso l'utilità htop. Essa consente di visualizzare in tempo reale le informazioni sull'uso delle risorse di sistema.

Le principali funzionalità di htop:

  • visualizzazione del tempo di attività del sistema;
  • monitoraggio del carico del server (load average);
  • controllo dell'uso della CPU e della memoria RAM;
  • ricerca di processi per PID o nome;
  • visualizzazione della struttura ad albero dei processi;
  • gestione dei processi direttamente dall'interfaccia dell'utilità.

Dopo esserti connesso al server tramite SSH, puoi avviare htop con il comando: htop

Monitoraggio del carico su un server virtuale tramite il comando htop

Importazione ed esportazione di database

Per importare ed esportare database MySQL tramite SSH, puoi utilizzare i seguenti comandi.

Importazione del database:

mysql -h server -u username -p database_name < dump.sql

Esportazione del database (creazione di un backup):

mysqldump -h server -u username -p database_name > backup.sql

Questi comandi consentono di trasferire rapidamente database, creare backup e ripristinare dati senza utilizzare l'interfaccia web.

Lavorare tramite SSH offre maggiori possibilità per l'amministrazione del server, l'automazione delle attività e la gestione del sistema tramite riga di comando.