Introduzione
Autossh è un programma open-source che permette di mantenere una connessione SSH attiva in modo affidabile, anche in presenza di interruzioni di rete o di disconnessioni accidentali.
Autossh funziona riconnettendosi automaticamente in caso di interruzioni di rete, ripristinando la connessione SSH esistente senza la necessità di intervenire manualmente. Inoltre, Autossh è in grado di riprendere le connessioni interrotte in modo automatico senza la necessità di reimpostare la password di autenticazione.
In pratica, Autossh funziona come un wrapper attorno al programma SSH standard, fornendo un controllo aggiuntivo sulle connessioni SSH e la gestione degli errori di rete. Ciò rende Autossh una soluzione molto utile per le connessioni SSH crittografate e affidabili, in particolare per applicazioni che richiedono una connessione costante, come ad esempio il controllo remoto di un server o l'accesso a risorse di rete da remoto.
Installare Autossh
Autossh è disponibile nei repository di pacchetti della maggior parte delle distribuzioni Linux. Per installarlo, apri un terminale ed esegui il seguente comando:
sudo apt-get install autossh
Se stai utilizzando un gestore di pacchetti diverso, puoi cercare e installare il pacchetto "autossh" utilizzando il comando appropriato.
Configurare un tunnel SSH
Prima di poter utilizzare Autossh, dobbiamo configurare un tunnel SSH che possa gestire. In questo esempio, creeremo un tunnel che inoltra la porta locale 8080 alla porta 80 su un server remoto.
Per creare il tunnel, esegui il seguente comando in un terminale:
ssh -L 8080:localhost:80 remote-user@remote-server
Questo comando stabilirà una connessione SSH al server remoto e creerà un tunnel che inoltra il traffico dalla porta 8080 sulla tua macchina locale alla porta 80 sul server remoto.
Una volta stabilito il tunnel SSH, puoi testarlo aprendo un browser Web e navigando su http://localhost:8080. Se tutto è impostato correttamente, dovresti vedere la pagina Web predefinita per il server remoto.
Utilizzare Autossh per gestire il tunnel SSH
Ora che abbiamo un tunnel SSH configurato e funzionante, possiamo usare Autossh per riavviare automaticamente il tunnel se è disconnesso o interrotto.
Per utilizzare Autossh, dobbiamo modificare il comando SSH utilizzato per creare il tunnel. Ecco un esempio:
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -f -L 8080:localhost:80 remote-user@remote-server
Questo comando è simile al comando SSH utilizzato in precedenza per creare il tunnel, ma include alcune opzioni aggiuntive che indicano ad Autossh di gestire il tunnel.
- L'
-M 0
opzione indica ad Autossh di utilizzare una porta di monitoraggio integrata per rilevare se il tunnel SSH si è disconnesso. - Le opzioni
-o "ServerAliveInterval 30"
e-o "ServerAliveCountMax 3"
indicano ad Autossh di inviare pacchetti keepalive ogni 30 secondi e di tentare di riconnettersi se tre pacchetti keepalive consecutivi falliscono. - Le
-N -f
opzioni dicono a SSH di creare il tunnel in background senza eseguire alcun comando remoto.
Testare Autossh
Per testare Autossh, disconnettere la connessione Internet o arrestare manualmente il tunnel SSH premendo `CTRL + C` . Autossh dovrebbe rilevare che il tunnel è stato disconnesso e riavviarlo automaticamente.
Puoi verificare che il tunnel sia stato riavviato accedendo a http://localhost:8080 nel tuo browser web.
Conclusione
In questo articolo, abbiamo spiegato come installare e utilizzare Autossh su Linux. Autossh può essere uno strumento prezioso per mantenere connessioni SSH persistenti su connessioni di rete instabili o inaffidabili. Utilizzando Autossh, puoi assicurarti che i tuoi tunnel SSH rimangano operativi anche se la connessione viene interrotta.