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_hostSostituite 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_hostQuesto è 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_hostLa generazione di una chiave SSH può essere effettuata con:
ssh-keygen -t rsa -b 4096Questo 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/directoryRiduce 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_hostQuesto 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_hostIn questo modo si riduce l’overhead di autenticazione per le sessioni SSH multiple.
Per chiudere una sessione SSH, è sufficiente digitare:
exitOppure utilizzare la sequenza di escape:
~.È utile quando la connessione non risponde.