Pubblicato
Se hai bisogno di utilizzare SSH in Linux per gestire in remoto altri computer, questa guida ti guiderà a farlo.
Nel panorama interconnesso di oggi, la capacità di gestire computer da diverse posizioni geografiche è passata dal lusso alla necessità. Esistono diversi modi per farlo, a seconda del sistema operativo in uso. Per Sistemi basati su Linux, il modo più comune e sicuro per gestire il PC da remoto è utilizzare SSH (O Guscio sicuro).
Analizziamo come utilizzare SSH su Linux per connettersi ad altri computer.
Primi passi essenziali
Prima di poterti connettere con successo a un altro computer Linux con SSH, devi soddisfare i seguenti prerequisiti:
- Il computer di destinazione deve rimanere acceso e connesso a una rete.
- Il software client e server necessario deve essere installato e attivato.
- Avrai bisogno di conoscere l'indirizzo IP o il nome host del computer di destinazione.
- Devono essere predisposte le autorizzazioni appropriate per l'accesso remoto.
- Le configurazioni del firewall sul computer remoto devono consentire la connessione in entrata.
Se stai accedendo a un computer Linux gestito, ad esempio, dalla tua società di web hosting, dovrebbero essersi già occupati di tutto ciò. Successivamente, potresti dover eseguire alcune installazioni software di base sul tuo computer Linux.
Usare SSH su Linux: una guida pratica
Per stabilire una connessione SSH funzionale sono necessari moduli software sia client che server. OpenSSH funge da file alternativa open source prevalentemente per piattaforme Linux.
Per installare il client OpenSSH corretto, avrai bisogno dell'accesso al terminale sul tuo computer locale. Tieni presente che i sistemi Ubuntu non dispongono di un server SSH preinstallato.
Installazione di un client OpenSSH
Prima di approfondire il processo di installazione, dovresti verificare che il client SSH non sia già presente. Per farlo, basta aprire una finestra di terminale. È possibile cercare "terminale" o premere ctrl+alt+t sulla tastiera.
Una volta nella finestra del terminale, verifica la presenza del client SSH digitando quanto segue:
$ ssh
Se sul computer Linux è già installato un client SSH, vedrai le seguenti informazioni scorrere sullo schermo.
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host: port] [-w local_tun[:remote_tun]] destination [command [argument ...]]
Se invece ricevi un reclamo relativo al mancato ritrovamento del file, dovrai procedere con l'installazione del client OpenSSH. Fortunatamente, questo è abbastanza semplice.
Su Ubuntu e altre installazioni basate su Debian, esegui semplicemente il seguente comando nel Terminale:
$ sudo apt install openssh-client
Se utilizzi Fedora o un'altra distribuzione che utilizza gnam invece di adatto, basta eseguire questo comando:
$ sudo yum -y install openssh-clients
I sistemi Fedora più recenti potrebbero utilizzare dnf Invece. Se suona come te, il comando magico è:
$ sudo dnf install -y openssh-clients
Segui le istruzioni visualizzate sullo schermo e sarai pronto a partire in pochissimo tempo.
Avvio di una connessione SSH
Dopo esserti assicurato che il client SSH sia installato sul tuo computer Linux, è il momento di avviare la prima connessione. Mentre sei ancora nella finestra del terminale, esegui il seguente comando:
$ ssh username@host_ip_address
Se i nomi utente corrispondono tra macchine locali e remote, inserisci semplicemente:
$ ssh host_ip_address
La prima volta che ti connetti, verrai accolto con una richiesta che ti chiede se desideri continuare a connetterti al computer sconosciuto. A questo punto digita SÌ e continuare.
Inserisci la tua password, sapendo che non riceverai alcun feedback sullo schermo durante l'accesso. Una volta terminato, dovresti aver effettuato l'accesso al server remoto e poter iniziare a svolgere qualsiasi attività tu debba eseguire su quel computer in primo luogo.
Comprendere SSH: una panoramica di alto livello
Secure Shell, o SSH, talvolta indicato come Secure Socket Shell, è un protocollo che consente la connettività sicura a server o computer remoti tramite un'interfaccia basata su testo.
Dopo l'autenticazione di un canale SSH sicuro, viene inizializzata una sessione di shell, consentendo l'interazione della riga di comando dal computer locale.
Questo protocollo è ben noto e apprezzato dagli amministratori di sistema e di rete, nonché da chiunque necessiti di una gestione remota sicura delle macchine.
Meccanica della funzionalità SSH
La creazione di un canale SSH richiede la collaborazione di due componenti fondamentali: un'applicazione lato client e la sua controparte lato server. L'applicazione client avvia la connessione fornendo le credenziali dell'host remoto.
Se verificato, il software crea un canale crittografato tra i due computer. Sulla macchina remota, un demone SSH scansiona continuamente una porta TCP/IP designata per potenziali richieste di connessione.
Al momento della ricezione, il demone trasmette le sue funzionalità software e di protocollo ed entrambe le entità si scambiano i dati di identificazione. Se le credenziali corrispondono, avviene una sessione crittografata, prevalentemente tramite il protocollo SSH versione 2.
Utilizzo avanzato di SSH: memorizzazione della chiave di crittografia per evitare l'immissione di una password
Ora, diciamo che vuoi evitare di doverlo fare Inserisci la tua password ogni volta che accedi a un server remoto. Per una connessione sicura e senza password a un altro computer è indispensabile una chiave SSH (Secure Shell).
Potresti già possedere una chiave del genere, ma generarne una nuova non è mai una cattiva idea. Originata sul tuo computer locale, una chiave SSH è divisa in due elementi distinti: una chiave privata confidenziale – da non divulgare mai – e la sua controparte pubblica. Questa chiave pubblica viene quindi diffusa su tutti i sistemi remoti a cui è necessario accedere.
Alcune persone potrebbero optare per una chiave SSH per una moltitudine di applicazioni, che vanno dagli accessi al sistema remoto a GitLab. Una chiave per domarli tutti, si potrebbe dire. Tuttavia, il mio approccio è più granulare. Utilizzo tasti diversi, ciascuno progettato per uno specifico sottoinsieme di attività.
Ad esempio, utilizzo una chiave dedicata per le macchine locali all'interno della mia rete domestica, un'altra esclusiva chiave per i server web sotto la mia amministrazione e ancora un'altra chiave univoca per interagire con Git ospiti.
Creazione di una nuova coppia di chiavi SSH
Ecco come puoi creare una nuova chiave SSH e quindi copiarla sul server remoto per cui desideri utilizzarla. Innanzitutto, crea la chiave utilizzando ssh-keygen.
$ ssh-keygen -t ed25519 -f /.ssh/lan
La bandiera -T specifica il tipo di chiave da creare, garantendo che la crittografia sia superiore a quella predefinita. IL -F flag imposta il nome e il percorso del file della chiave.
Quando esegui questo comando, ti verrà richiesto di creare una password per la chiave. Quella password, se la imposti, rimane locale e non viene inviata attraverso la rete.
Invio della chiave SSH al server remoto
Successivamente, dovrai inviare la chiave di sicurezza al server remoto. Per fare ciò, basta impartire questo comando:
$ ssh-copy-id -i /.ssh/lan.pub user@host_ip_address
Ti verrà richiesta la password di accesso sull'host remoto. Una volta completato il processo, tuttavia, la chiave verrà installata su quel computer.
Dovresti provare provando ad accedere al computer remoto. Quando esegui nuovamente ssh nell'host remoto, ti verrà richiesta la passphrase per la chiave, se ne hai impostata una. Questa non è la tua password di accesso, ricorda. È la passphrase specifica per quella chiave SSH.
Su molte distribuzioni, incluso Linux, questa richiesta di passphrase si aprirà come una finestra di dialogo. Come puoi vedere dall'esempio seguente, puoi selezionare una casella per fare in modo che il computer Linux ricordi la passphrase. Ciò ridurrà però la sicurezza della chiave.
Una volta inserita la passphrase per la tua chiave SSH, non dovresti doverla digitare nuovamente finché non ti disconnetti dal computer locale.
Altri modi per utilizzare SSH
Fatto tutto ciò, sei a posto per utilizzare SSH per l'accesso remoto ad altri computer basati su Linux o Unix. Naturalmente, non si tratta solo di accedere al prompt dei comandi.
SSH include anche un modo sicuro per trasferire file tra computer senza utilizzare FTP. È possibile utilizzare Copia protetta o scp per spostare quei file in giro. Se sei un utente Windows 11 e devi utilizzare SSH, sei fortunato poiché il client è preinstallato. Puoi persino generare e utilizzare Chiavi SSH in Windows 11.