Secure Shell (SSH) è uno strumento fondamentale per lo sviluppo di WordPress. Garantisce agli utenti avanzati l’accesso a piattaforme e software avanzati che semplificano la codifica e altre operazioni, e le rendono più veloci e organizzate.

Quindi, se cercate di utilizzare SSH e vedete solo un errore “Connection refused”, potreste iniziare a sentirvi preoccupati. Ma questo è un problema frequente ed è possibile risolverlo da soli con un po’ di analisi. Tornerete a eseguire i comandi in un batter d’occhio.

In questo post spiegheremo cos’è SSH e quando usarlo. Illustreremo alcune delle cause più frequenti del rifiuto della connessione, anche in PuTTY. Infine, offriremo alcuni suggerimenti per la risoluzione dei problemi.

Immergiamoci!

Cos’è SSH e Quando Utilizzarlo?

Secure Shell (SSH), talvolta chiamato anche Secure Socket Shell, è un protocollo per accedere in modo sicuro al server del vostro sito su una rete non protetta. In altre parole, è un modo per accedere in modo sicuro al vostro server da remoto utilizzando la vostra interfaccia a riga di comando preferita:

Usare SSH per accedere da remoto ad un sito WordPress ospitato su Kinsta
Utilizzare SSH per accedere da remoto ad un sito WordPress ospitato su Kinsta

A differenza del File Transfer Protocol (FTP), che consente solo di caricare, cancellare e modificare i file sul proprio server, SSH può permettere di svolgere un’ampia gamma di operazioni. Ad esempio, se un errore vi blocca fuori dal vostro sito WordPress, potete usare SSH per accedervi da remoto.

Questo protocollo consente anche di utilizzare diversi strumenti importantissimi per lo sviluppo, tra cui:

  • WP-CLI. La linea di comando WordPress. È possibile utilizzarlo per una varietà di azioni, comprese le nuove installazioni, gli aggiornamenti cumulativi dei plugin e l’importazione di file multimediali.
  • Composer. Un gestore di pacchetti PHP. Permette di implementare diversi framework da utilizzare nel codice del proprio sito, estraendo le librerie e le dipendenze necessarie.
  • Git. Un sistema di controllo versioni utilizzato per tenere traccia delle modifiche al codice. Questo è utile soprattutto per i team di sviluppatori che lavorano insieme su un singolo progetto.
  • npm. Un gestore di pacchetti JavaScript. Include una riga di comando e un registro del software JavaScript. Nota: i clienti di Kinsta avranno bisogno di un piano Enterprise per accedere a questa funzionalità.

Si noti che SSH richiede competenze avanzate. In generale, gli utenti di WordPress meno esperti dovrebbero contattare i loro sviluppatori o provider di hosting per chiedere aiuto e non cercare di risolvere i problemi di SSH da soli.

Perché la mia Connessione SSH È Rifiutata? (5 Cause degli Errori di Connettività)

Purtroppo ci sono diverse scenari che potrebbero verificarsi mentre cercate di connettervi al vostro server tramite SSH che potrebbero portare ad un errore “Connection refused”.

Qui di seguito sono riportati alcune delle anomalie più frequenti che potrebbero causarvi dei problemi.

1. Il Vostro Servizio SSH È Giù

Per connettervi al vostro server con SSH, deve essere in esecuzione un demone SSH – un programma che gira in background in attesa per accettare le connessioni.

Se questo servizio non è attivo, non sarete in grado di connettervi con successo al vostro server e potreste ricevere un errore di connessione rifiutata:

Errore Connection Refused nel terminale
Errore Connection Refused nel terminale

Il demone SSH del vostro server può essere inattivo per moltissime ragioni, tra cui picchi di traffico inattesi, interruzione delle risorse o anche un attacco Distributed Denial of Service (DDoS). Oltre a seguire i passaggi diagnostici di cui parleremo qui di seguito, potreste contattare il vostro provider di hosting per individuare l’origine del problema.

Se sospettate che il servizio SSH possa essere inattivo, potete scoprirlo eseguendo questo comando:

sudo service ssh status

Se la riga di comando restituisce uno stato di down, è probabile che abbiate scoperto la causa dell’errore di connettività.

2. Avete le Credenziali Sbagliate

Anche se può sembrare troppo semplice per essere vero, è possibile che, quando si cerca di connettervi al server, state semplicemente inserendo le credenziali sbagliate. Sono quattro le informazioni necessarie per eseguire SSH:

  • Nome host. L’indirizzo IP del server a cui state cercando di connettervi o il vostro nome di dominio.
  • Nome utente. Il vostro nome utente (S)FTP.
  • Password. La vostra password (S)FTP.
  • Porta. La porta predefinita è la 22. Tuttavia, alcuni provider di hosting (tra cui Kinsta) cambiano il loro numero di porta SSH per motivi di sicurezza. In questo caso, dovreste essere in grado di trovarla accedendo alla vostra dashboard di MyKinsta.

Potete anche verificare quale porta viene utilizzata per SSH eseguendo questo comando:

grep Port /etc/ssh/sshd_config

La linea di comando dovrebbe restituire la porta corretta.

Verificate di aver inserito le credenziali corrette e tenete in considerazione la possibilità di errori di battitura o di inserimento di un indirizzo IP o di una porta sbagliata.

3. La Porta che State Cercando di Utilizzare è Chiusa

Una “porta” è semplicemente l’endpoint a cui si è diretti quando ci si connette al proprio server. Oltre ad assicurarvi di avere quella corretta, dovrete anche controllare se la porta che state cercando di utilizzare è aperta.

Ogni porta aperta è una vulnerabilità nella sicurezza, poiché gli hacker possono tentare di sfruttarla per accedere al server. Per questo motivo, le porte inutilizzate vengono spesso chiuse per prevenire attacchi.

Nel caso in cui la porta 22, o la porta SSH personalizzata per il vostro server, sia stata chiusa, probabilmente vedrete un errore di Connessione rifiutata. Potete controllare se la porta è in ascolto eseguendo questo comando:

sudo netstat -plnt

La riga di comando dovrebbe restituire un elenco di porte e dei rispettivi “stati”. Vorrete che lo stato della porta 22 sia LISTEN. Se non lo è, è necessario riaprire la porta per connettervi al server.

4. SSH Non è Installato sul Vostro Server

Come abbiamo brevemente accennato prima, i server utilizzano i demoni SSH per ascoltare e accettare le connessioni. Pertanto, se non ce n’è uno installato sul server a cui state cercando di connettervi, non sarete in grado di accedervi utilizzando SSH.

In generale, quasi tutti i provider di hosting avranno demoni SSH di default sui propri server. Questo particolare problema è più comune sui server localhost o sui server dedicati.

5. Le Impostazioni del Firewall Impediscono una Connessione SSH

Dato che le porte aperte rappresentano un rischio per la sicurezza, i firewall installati per proteggere i server dagli hacker a volte bloccano le connessioni. Purtroppo, ciò significa anche che gli utenti innocui che cercano di entrare nei propri server con SSH possono ricevere un errore di connessione rifiutata a causa delle impostazioni del firewall.

Se la vostra configurazione sembra essere in ordine e non riuscite comunque a connettervi, date un’occhiata alle regole del vostro firewall. Potete visualizzarle nella vostra interfaccia a riga di comando con i seguenti comandi:

sudo iptables-save # display IPv4 rules
sudo ip6tables-save # display IPv6 rules

I risultati varieranno, ma dovreste cercare questi elementi per stabilire se il vostro firewall sta bloccando le connessioni SSH:

  • dport 22: si riferisce alla porta di destinazione, che per SSH è solitamente la porta 22 (promemoria: Kinsta non utilizza questo numero di porta).
  • REJECT: Questo indicherebbe che le connessioni vengono rifiutate dalla destinazione specificata.
  • DROP: Come REJECT, significa che le connessioni alla porta corrispondente sono bloccate.

Se cercate i risultati dei comandi di cui sopra per dport 22, dovreste essere in grado di determinare se il vostro firewall stia impedendo una connessione SSH. In caso affermativo, dovrete cambiare le regole in modo tale che le richieste vengano accettate.

Perché PuTTY Dice che la Connessione è Stata Rifiutata?

PuTTY è un client SSH. Se avete familiarità con FTP, questa piattaforma è l’equivalente di FileZilla su macchine Windows. In altre parole, PuTTY permette agli utenti di inserire le proprie credenziali e lanciare una connessione SSH:

Il sito web di PuTTY
Il sito web di PuTTY

Se siete utenti di PuTTY e vedete l’errore di connessione rifiutata, la causa è probabilmente una di quelle elencate sopra.

È un errore di connettività SSH come qualsiasi altro, e i suggerimenti per la risoluzione dei problemi riportati di seguito dovrebbero andar bene sia che si utilizzi PuTTY, Terminal, o qualsiasi altro programma per la connessione al server con SSH.

Come si Risolvono gli Errori di Connettività di SSH?

Quando si verifica un errore di connettività SSH, ci sono alcuni passaggi che vi permettono di risolvere il problema a seconda delle cause. Ecco alcuni suggerimenti per la risoluzione dei problemi relativi alle cause di un errore Connection refused:

  • Se il servizio SSH non è disponibile. Contattate il vostro provider di hosting per vedere perché il vostro servizio SSH non è in funzione. Per i server localhost o dedicati, potete utilizzare il comando sudo service ssh restart per provare a farlo ripartire.
  • Se avete inserito le credenziali sbagliate. Dopo aver ricontrollato la porta SSH con il comando grep Port /etc/ssh/sshd_config, provate a connettervi di nuovo con i dati corretti.
  • Se la vostra porta SSH è chiuso. Questo è di solito un effetto collaterale di uno dei due motivi indicati di seguito. O installate un demone SSH sul server a cui volete connettervi, oppure modificate le regole del firewall in modo che accetti connessioni alla vostra porta SSH.
  • Se SSH non è installato sul vostro server. Installate uno strumento SSH come OpenSSH sul server a cui volete connettervi utilizzando il comando sudo apt install openssh-server.
  • Se il vostro firewall sta bloccando la vostra connessione SSH. Disattivate le regole del firewall che bloccano la connessione SSH, modificando le impostazioni della porta di destinazione in ACCEPT.

Se state provando a connettervi al server del vostro provider di hosting, potrebbe essere più saggio contattare il supporto, piuttosto che provare a risolvere il problema da soli. Se nessuna delle soluzioni di cui sopra funziona, gli utenti su localhost o server dedicati potrebbero trovare ulteriore supporto su forum più avanzati.

Riepilogo

Essere in grado di connettersi al proprio server con SSH è conveniente in moltissime di situazioni. Può permettervi di accedere al vostro sito quando siete bloccati fuori dalla bacheca di WordPress, eseguire comandi tramite WP-CLI, tenere traccia delle modifiche al codice del vostro sito con Git e molto altro.

Anche se ci sono diverse cause che potrebbero essere dietro l’errore di connettività SSH, queste sono alcune delle più comuni:

  1. Il vostro servizio SSH non è disponibile.
  2. Avete le credenziali sbagliate.
  3. La porta che state cercando di utilizzare è chiusa.
  4. SSH non è installato sul vostro server.
  5. Le impostazioni del firewall impediscono una connessione SSH.