Secure Shell (SSH) è uno strumento essenziale per amministratori di sistema, sviluppatori e chiunque gestisca server remoti. Con SSH è possibile connettersi in modo sicuro a un computer remoto, eseguire comandi, trasferire file e svolgere attività amministrative. In questo articolo esploreremo 10 comuni comandi SSH che dovreste utilizzare oggi.

1. Connessione a un server remoto

Il comando SSH più elementare viene utilizzato per connettersi a un server remoto:

ssh user@remote_host

Sostituite user con il vostro nome utente e remote_host con l’indirizzo IP o il nome di dominio del server.

2. Connessione con una porta specifica

Per impostazione predefinita, SSH utilizza la porta 22, ma se necessario è possibile specificare una porta diversa:

ssh -p 2222 user@remote_host

Questo è utile se il server SSH è configurato per funzionare su una porta non standard.

3. Utilizzo delle chiavi SSH per l’autenticazione

Invece di usare una password, è possibile autenticarsi con una chiave SSH:

ssh -i /path/to/private_key user@remote_host

La generazione di una chiave SSH può essere effettuata con:

ssh-keygen -t rsa -b 4096

Questo migliora la sicurezza ed elimina la necessità di inserire ogni volta una password.

4. Esecuzione di comandi su un server remoto

È possibile eseguire un singolo comando su un server remoto senza aprire una sessione interattiva:

ssh user@remote_host "ls -l /var/www/html"

Questa operazione è utile per eseguire rapidamente operazioni amministrative.

5. Copiare i file con SCP

Il protocollo di copia sicura (SCP) consente di trasferire file tra macchine locali e remote:

scp file.txt user@remote_host:/remote/directory/

Per copiare una directory in modo ricorsivo:

scp -r /locale/directory user@remote_host:/remote/directory/

6. Copiare i file con rsync

Un’alternativa a SCP è rsync, più efficiente per la sincronizzazione dei file:

rsync -avz /locale/directory user@remote_host:/remote/directory

Riduce al minimo il trasferimento dei dati inviando solo le differenze tra i file.

7. Impostazione del tunnel SSH

Il tunneling SSH consente di inoltrare in modo sicuro il traffico di rete. Per creare un tunnel locale:

ssh -L 8080:localhost:80 user@remote_host

Questo inoltra il traffico dalla porta locale 8080 alla porta 80 del server remoto.

8. Tunnel SSH inverso

Il tunneling inverso consente a un server remoto di accedere al vostro computer locale:

ssh -R 9090:localhost:22 user@remote_host

È utile per accedere a un sistema dietro un firewall.

9. Multiplexing delle connessioni SSH

Se vi connettete spesso allo stesso server, potete velocizzare SSH abilitando il multiplexing:

ssh -o ControlMaster=yes -o ControlPath=~/.ssh/socket user@remote_host

In questo modo si riduce l’overhead di autenticazione per le sessioni SSH multiple.

10. Terminare una sessione SSH

Per chiudere una sessione SSH, è sufficiente digitare:

exit

Oppure utilizzare la sequenza di escape:

~.

È utile quando la connessione non risponde.