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.
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.
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.
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.
È 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.
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/
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.
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.
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.
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.
Per chiudere una sessione SSH, è sufficiente digitare:
exit
Oppure utilizzare la sequenza di escape:
~.
È utile quando la connessione non risponde.