In questa lezione mostreremo nel dettaglio come effettuare un collegamento SSH. Supponiamo di non avere a disposizione il nostro computer, che sia di lavoro o personale, e di essere quindi fuori casa.
La necessità più comune, in genere, è quella di poter accedere ai propri file personali da remoto. Come ben sappiamo, per il login remoto si potrebbe utilizzare il protocollo di rete Telnet, anche se, come anticipato nella lezione precedente, non è un protocollo propriamente sicuro. A questo proposito ci viene in aiuto il SSH. Di seguito verrà quindi mostrato come effettuare un collegamento sicuro SSH tra due macchine.
Abilitare SSH su Windows e Linux
Una precisazione da effettuare su SSH riguarda la sua presenza nei più noti sistemi operativi. Bisogna, infatti, dire che l'SSH non è nativo nel sistema operativo Windows.
Ciò è un retaggio storico dovuto al fatto che Windows è un sistema operativo che si è da sempre basato maggiormente sulla sua interfaccia grafica e sull'essere user friendly, piuttosto che sulle sue funzionalità. Inoltre, bisogna ricordare che il protocollo predefinito Windows per la connessione remota è l'RDP (su porta 3389).
I sistemi operativi Linux e UNIX like, invece, che sono nati su riga di comando, hanno sin da subito adottato come connessione remota di base il protocollo SSH (su porta 22) e, prima ancora, il suo equivalente, ma insicuro, Telnet. Dopo decenni, però, è stato possibile utilizzare il protocollo SSH con una certa facilità anche sui sistemi di Microsoft, mediante l'installazione della suite OpenSSH.
Configurazione SSH Windows
In questo paragrafo vedremo come installare SSH sul sistema operativo Windows. Non sarà presente un paragrafo per l'installazione SSH su sistemi Unix-like perchè già nativamente presente. Come prima cosa, clicchiamo sul pulsante "Start" di Windows e successivamente su "Impostazioni" (icona con l'ingranaggio), come mostrato nella figura seguente:
Successivamente clicchiamo su "App", come mostrato in figura:
e su "Funzionalità facoltative".
Poi su "Aggiungi una funzionalità" e successivamente, scrivendo nella barra di ricerca "ssh", spuntiamo la voce "Server OpenSSH" e "Client OpenSSH" per poi cliccare sul pulsante "Installa", come mostrato nelle due figure in basso:
Così facendo abbiamo installato OpenSSH su Windows. Adesso possiamo utilizzare SSH dal Prompt dei Comandi (cmd
) di Windows. La cosa importante da ricordare è quella di eseguire il Prompt come Amministratore.
Primo collegamento SSH
Dopo aver installato il nostro client SSH su Windows, quello che ci rimane da fare è di provare a collegarci a un server SSH. Chiaramente, questa azione presuppone la presenza di un server SSH, che dovremmo opportunamente installare e configurare sulla macchina remota con la quale vogliamo collegarci.
In verità, nel paragrafo precedente abbiamo già installato sul nostro sistema Windows un server SSH, ma in queste prime fasi ci limiteremo semplicemente a usare il client SSH, senza preoccuparci di adoperare e configurare la controparte server. Per evitare quindi di impiegare il server SSH, possiamo servirci di un servizio online raggiungibile all'URL: https://sdf.org/.
Super Dimension Fortress (SDF, conosciuto anche come freeshell.org) è un provider di shell UNIX ad accesso pubblico su Internet senza scopo di lucro, in funzione sin dal lontano 1987. Per poter utilizzare il loro servizio di server SSH gratuito dobbiamo semplicemente registrarci presso il loro sito Web, tramite il form che compare nella pagina principale, come mostrato nella figura seguente:
Inseriamo nella input box "Your E-Mail" la nostra e-mail personale e nella input box "Preferred Login" il nome che vogliamo dare al nostro server SSH.
Dopo aver inserito i dati, il sito riporterà le informazioni del nostro account SDF Shell, precisando che la password e le informazioni di login saranno mandate all'e-mail che abbiamo precedentemente inserito.
L'e-mail non arriverà immediatamente, per cui non preoccupiamoci qualora non dovessimo riceverla subito dopo. Una volta ricevuta l'e-mail saremo in grado di effettuare il login sul server SSH di sdf.org.
Quindi, dopo aver aperto il Prompt dei Comandi di Windows o la Shell Linux, quello che dovremo fare sarà scrivere il seguente comando ssh, seguito dall'indirizzo del server SSH che abbiamo ricevuto tramite email.
Se l'indirizzo del nostro server SSH dovesse risultare: provahtml@tty.sdf.org
, il comando completo che scriveremo per accedere al server sarà:
ssh provahtml@tty.sdf.org
Il comando ssh esegue un client SSH che contatta via internet il server SSH su tty.sdf.org, chiedendo di accedere all'account remoto.
Al primo contatto, il protocollo SSH stabilisce un canale sicuro tra il client e il server, in modo che tutti i dati trasmessi tra i due vengano cifrati e siano messi in sicurezza. Il client richiede quindi la password dell'account (anche questa l'abbiamo ricevuta tramite email) per permettere l'accesso.
Il server autentica l'utente verificando che la password sia corretta e gli consente l'accesso. Dopo aver ottenuto l'accesso al server SSH di sdf.org, avremo una schermata di benvenuto simile a quella mostrata nella figura in basso, dove saremo informati che il nostro account su sdf.org rimarrà attivo per 365 giorni, sempre che non dovessimo decidere di diventare membri a vita di SDF effettuando una donazione di 36$.
E' importante rimarcare il concetto che tutti gli scambi successivi tra il client e il server sono protetti dal protocollo SSH, compreso tutto ciò che si digita nell'applicazione SSH del Prompt e tutto ciò che viene visualizzato da sdf.org.
A questo punto, per provare a lanciare un comando al server tramite SSH, potremmo provare a creare una directory nel computer remoto tramite il comando mkdir
. Lanciamo il comando:
mkdir prova
per creare una directory di nome "prova" sul computer remoto e successivamente con il comando ls
verifichiamo che l'operazione sia andata a buon fine.
Conclusioni
In questa lezione abbiamo visto come installare un client SSH, nello specifico OpenSSH su Windows, e come il protocollo SSH sia costellato da diversi programmi client. I client più comunemente utilizzati sono ssh per il login remoto e scp e sftp per il trasferimento di file, che approfondiremo più avanti in questa guida.
L'autenticazione remota può essere effettuata sia utilizzando password di accesso che coppie di chiavi, pubblica e privata, come vedremo successivamente. Le password sono più immediate e facili da usare, ma l'autenticazione a chiave pubblica è sicuramente più flessibile e sicura.
Ad ogni modo, l'aspetto importante da considerare è che il collegamento remoto SSH tra due macchine avviene in maniera sicura e che i dati scambiati tra queste sono sempre cifrati e sicuri.