Raspberry Pi: attivare e utilizzare l’accesso SSH
Il Raspberry Pi non fa solo bella figura come componente hardware elementare di progetti creativi DIY, ma il mini computer britannico, grazie alle sue buone prestazioni e a un basso consumo di elettricità, è richiesto anche molto come base per far funzionare server di diversa natura (ad esempio server cloud, DNS o per giocare a Minecraft). Per non dover sempre collegare tastiera e monitor quando devono apportare delle modifiche alle impostazioni del server, molti utenti si affidano all’accesso remoto tramite SSH (Secure Shell).
Impostare l’accesso SSH sul Raspberry Pi: la situazione di partenza
Chi gestisce un server sul Raspberry Pi, ricorre nella maggior parte dei casi alla base software Raspbian, considerata lo standard per il mini computer. Le versioni più recenti della distribuzione Linux hanno già installato un servizio SSH per il Pi, necessario per stabilire delle connessioni remote crittografate. Per motivi di sicurezza il servizio non è però più attivato di default, quindi è necessario attivarlo per poter prendere in considerazione le possibilità offerte dall’accesso remoto. Mentre gli utenti Linux e macOS possono stabilire una connessione SSH semplicemente tramite la shell o il terminale, gli utenti Windows hanno bisogno di software aggiuntivi, come PuTTY o WinSCP.
“pi“ è il profilo standard del Raspbian, che ha sempre la stessa password (“raspberry”). Quando il servizio SSH era attivato di default, qualsiasi utente poteva quindi stabilire una connessione di rete al Raspberry e loggarsi facilmente, nel caso in cui i dati del login non fossero stati cambiati. Per questo motivo l’accesso SSH è stato disattivato dal setup iniziale.
Tutorial: come attivare l’accesso SSH sul Raspberry Pi
Il servizio SSH è stato disattivato in vista di potenziali accessi indesiderati troppo facili da compiere. Per fare in modo che questo rischio non si presenti involontariamente al momento dell’attivazione manuale, dovreste modificare il prima possibile la password dell’utente “pi”, soprattutto prima che venga instaurata una connessione a Internet.
Attualmente per l’attivazione dell’accesso SSH ci sono le seguenti quattro possibilità:
Prima soluzione: creare il file ssh nella directory boot sulla scheda SD
Se non avete la possibilità di controllare il Raspberry direttamente tramite tastiera e schermo, potete ricorrere a un semplice trucco: accedete da un computer esterno alla scheda microSD sulla quale avete installato Raspbian e create nella directory boot un file con il nome ssh. In questo caso è importante che non inseriate nessuna estensione del file e che prestiate attenzione al fatto che non venga aggiunta automaticamente (come accade spesso su Windows). Dopo aver riavviato il mini computer, l’accesso SSH sarà attivo.
Seconda soluzione: attivare il server SSH tramite desktop
Quando collegate il mini computer alla tastiera, al mouse e allo schermo, potete attivare facilmente il servizio SSH sul Raspberry Pi dall’interfaccia del desktop. Aprite quindi il menu di avvio e selezionate la voce del menu “Preferences” sotto “Raspberry Pi Configuration”. Alla tab “Interfaces” trovate anche la voce relativa all’SSH con l’impostazione standard (“disabled“ = disattivato), che in questo caso invertite. Infine confermate la modifica cliccando su “OK”.
Terza soluzione: attivare l’accesso SSH tramite il terminale nel file raspi-config
Una volta che avete collegato la tastiera e lo schermo al vostro Raspberry Pi, potete attivare l’accesso SSH anche dal terminale. Avviate quindi la riga di comando e digitate il seguente comando:
sudo raspi-config
Nel menu del tool di configurazione che si apre selezionate prima il punto 7 (“Advanced Options“) e dopo A4 (“SSH“). Lo strumento vi chiede se volete attivare il server SSH: confermate la richiesta e poi cliccate su “Finish”.
Quarta soluzione: avviare il servizio SSH con systemctl
In alternativa al raspi-config potete utilizzare lo strumento della riga di comando systemctl per configurare l’accesso SSH sul Raspberry Pi. Inserite quindi i seguenti due comandi nel terminale:
sudo systemctl enable ssh
sudo systemctl start ssh
Mentre il primo comando si assicura che d’ora in poi il server SSH si avvii automaticamente quando il mini computer viene avviato, il secondo attiva il server nella sessione corrente.
Come funziona l’accesso al server SSH attivato sul Raspberry Pi
Dopo che avete avviato il servizio SSH sul Raspberry Pi, il mini computer è pronto per l’accesso remoto tramite il protocollo di rete. Le altre procedure si differenziano a seconda del tipo di sistema operativo installato sul computer esterno. Le istruzioni seguenti mostrano come gli utenti Windows, Linux e macOS gestiscono la connessione sicura e con quali difficoltà devono fare i conti.
Come stabilire una connessione SSH al Raspberry Pi con Linux e macOS
Le distribuzioni macOS e Linux, come Ubuntu o Debian, supportano automaticamente la connessione tramite il protocollo SSH per via dell’implementazione standard del software libero OpenSSH. Dovete quindi solo assicurarvi che il computer si trovi nella stessa rete del Raspberry Pi. Se è così, avete solo bisogno del relativo indirizzo IP per avviare la connessione. Per scoprire quale sia, avete due possibilità:
- Nel caso in cui utilizziate il Raspberry direttamente tramite tastiera e monitor, ricorrete al terminale del mini computer e date il comando
hostname -I
- Cercate l’indirizzo nella lista dei dispositivi sul vostro router o utilizzate sul computer esterno un tool come Nmap [Nmap: strumento di rete per Windows, Linux e macOS] (https://nmap.org), se gestite il Raspberry nella modalità headless.
Cercate di stabilire una connessione SSH tramite il terminale del dispositivo Unix, dando il comando apposito che segue una struttura di questo tipo:
ssh Nomeutente@Indirizzo IP
Nel parametro “Nome utente“ inserite il profilo standard “pi” o il nome del vostro profilo (se ne avete creato uno). Durante il primo tentativo di creare una connessione SSH tra il Pi e un dispositivo esterno ricevete un avviso di sicurezza/autentificazione. Dopo averne preso atto, inserite “yes” sul terminale per proseguire. Infine inserite la password per l’utente scelto per collegarvi alla riga di comando del Raspberry.
Può succedere che al Raspberry Pi venga assegnato un indirizzo IP al quale il computer esterno si è già collegato una volta (anche se si trattava di un’altra rete). In questo caso ricevete al momento di stabilire una connessione un avviso con la richiesta di eliminare il relativo IP dalla lista dei dispositivi conosciuti. Perciò attenetevi alle istruzioni date, prima di eseguire di nuovo il comando SSH.
Come impostare l’accesso SSH su Windows con PuTTY
A differenza della maggior parte dei sistemi compatibili con Unix, Windows non dispone di default di un client SSH. Il primo passaggio consiste quindi nel download di un’applicazione apposita, tra cui abbiamo scelto PuTTY. Tuttavia esistono anche dei client simili per funzioni e uso, per cui potete ricorrere sostanzialmente anche a un altro software.
Sul sito del progetto di PuTTY potete scaricare il pacchetto di installazione o direttamente il file exe del programma (putty.exe). Optando per quest’ultima variante vi risparmierete il processo di installazione e potrete avviare subito PuTTY. Se avete avviato il client con un doppio clic, dovete solamente inserire il nome host nel campo previsto e cliccare sul pulsante “Open”.
In alcuni casi è necessario indicare l’indirizzo IP al posto del nome host. Nel caso in cui non sappiate quale sia, potete utilizzare i metodi presentati sopra (Nmap, la lista dei dispositivi del router, il controllo del terminale).
Ora PuTTY mostra un messaggio in cui vi viene richiesto di confermare l‘affidabilità del server SSH sul Raspberry Pi e le chiavi SSH, cliccando su “Yes”. Come avviene su Unix, questo avviso di sicurezza compare solo quando instaurate una connessione per la prima volta. In una nuova finestra si apre infine la riga di comando tramite la quale potete completare il login remoto sul terminale del Raspberry inserendo i dati necessari.
Se durante il tentativo di login si verifica un timeout, quindi si supera il tempo massimo di richiesta per la connessione, è probabile che l’indirizzo IP inserito non coincida con quello reale del Raspberry Pi.