Vai al contenuto
Illustrazione 3D di un uomo su un divano con laptop collegato virtualmente a una scheda Raspberry Pi.

Immagine generata con IA

Un Raspberry Pi spesso lavora senza monitor. Può stare chiuso in un armadio o montato su un robot, oppure manca uno schermo libero. In questi casi lo si comanda da un altro computer. La guida usa due strumenti. Nella rete di casa c’è SSH con autenticazione a chiave. Da qualsiasi altra rete c’è Raspberry Pi Connect, il servizio gratuito di Raspberry Pi che apre una shell remota nel browser senza aprire porte sul router. Alla fine il Pi sarà raggiungibile con una chiave dalla rete locale e con Connect da fuori casa, anche dopo un riavvio. I comandi sono quelli della documentazione ufficiale, elencata in fondo.

Eben Upton introduces Raspberry Pi 5Il video si carica da YouTube quando premi play

Cosa serve

  • Un Raspberry Pi con Raspberry Pi OS Bookworm o successivo, collegato alla rete di casa e a Internet per usare Connect. Connect non funziona con le versioni di Raspberry Pi OS precedenti a Bookworm. Per la parte su Connect la guida considera la versione completa di Raspberry Pi OS, con desktop, che include Connect già installato. L’installazione di Connect su Raspberry Pi OS Lite non viene trattata.
  • Un altro computer nella stessa rete locale, con Linux o macOS e il client SSH. I comandi da lanciare sul computer sono pensati per il terminale di questi sistemi.
  • La password dell’account utente del Pi, che serve per il primo accesso e per copiare la chiave.
  • Per l’accesso da fuori casa, un Raspberry Pi ID su connect.raspberrypi.com e un browser che supporti ECMAScript 2022.
  • Solo per condividere lo schermo con Connect servono altre due condizioni insieme. La prima è il window server Wayland, che è quello predefinito di Raspberry Pi OS Bookworm e successivi: con X la condivisione non funziona. La seconda è una sessione grafica già aperta con lo stesso utente collegato a Connect. Di solito la si ottiene attivando Desktop Autologin in System Options di raspi-config. La shell remota non richiede nessuna delle due.

Attivare il server SSH sul Raspberry Pi

Su Raspberry Pi OS il server SSH è spento di default, quindi va acceso prima di tutto. La documentazione di Raspberry Pi sull’accesso remoto indica diversi modi:

  • Dal desktop: Preferences, Control Centre, scheda Interfaces, poi SSH su Enabled.
  • Con Raspberry Pi Imager, mentre si scrive una nuova immagine: nella scheda Customisation, sezione Remote Access, si attiva Enable SSH. Qui si può scegliere subito «Use public key authentication». Chi preferisce partire con la password aggiunge la chiave più avanti, come spiegato sotto.
  • Da terminale sul Pi, con lo strumento di configurazione: Interfacing Options, SSH, Yes, Ok e infine Finish.
sudo raspi-config

C’è anche un metodo manuale: sul Pi si crea un file vuoto chiamato ssh nella partizione di boot e poi lo si riavvia.

sudo touch /boot/firmware/ssh
sudo reboot

Trovare l’indirizzo IP del Pi nella rete di casa

Per collegarsi con SSH serve l’indirizzo IP locale del Pi. Dal desktop basta passare il mouse sull’icona di rete: compare un riquadro con il nome della rete e l’indirizzo. Da terminale, sul Pi, si usa questo comando, che stampa l’indirizzo locale:

hostname -I

In alternativa l’indirizzo si trova nell’elenco dei dispositivi collegati al router.

Collegarsi al Pi con SSH dal computer

Sul computer si apre il terminale e si lancia il comando qui sotto. Al posto di <username> va il nome dell’account del Pi e al posto di <ip address> l’indirizzo trovato prima.

ssh <username>@<ip address>

Alla prima connessione compare un avviso di sicurezza. Si scrive yes per proseguire e poi si inserisce la password dell’account del Pi. Quando compare il prompt del Pi, i comandi che si scrivono vengono eseguiti sul Pi. Per chiudere la sessione si scrive exit oppure si preme Ctrl+D.

In questa guida SSH resta dentro la rete di casa: la porta 22 non va aperta sul router. Da fuori si passa per Raspberry Pi Connect, descritto più avanti.

Generare una coppia di chiavi Ed25519 sul computer

Con le chiavi non serve più la password dell’account. Il computer conserva una chiave privata e il Pi la chiave pubblica corrispondente. I comandi di questa sezione si lanciano sul computer, non sul Pi. Prima si controlla se esiste già una chiave:

ls ~/.ssh

Se nell’elenco c’è id_ed25519.pub o id_rsa.pub, una chiave esiste già: si salta la generazione e si usa quella. Altrimenti si crea una chiave Ed25519. La documentazione di Ubuntu Server su OpenSSH consiglia questo algoritmo perché ha chiavi più corte e richiede meno calcoli:

ssh-keygen -t ed25519

Durante la creazione viene chiesta una passphrase. La documentazione di Raspberry Pi suggerisce di premere Invio e lasciarla vuota. Noi consigliamo di impostarne una, così il file della chiave privata da solo non basta per entrare. L’agente SSH della sezione successiva evita di riscriverla a ogni connessione. La chiave pubblica viene salvata in ~/.ssh/id_ed25519.pub e quella privata in ~/.ssh/id_ed25519. Il file senza .pub resta sul computer e non va mai copiato altrove.

Caricare la chiave nell’agente e copiarla sul Pi

Anche questi comandi si lanciano sul computer. L’agente SSH tiene in memoria la chiave sbloccata per tutta la sessione. Si avvia così:

eval "$(ssh-agent -s)"

Poi si passa all’agente il percorso della chiave privata. Con la chiave Ed25519 appena generata, che è il caso più comune, il comando da scrivere è ssh-add ~/.ssh/id_ed25519. In caso di dubbio sul nome del file, si rilancia ls ~/.ssh e si controlla.

Il blocco qui sotto serve solo a chi aveva già una chiave RSA, cioè un file id_rsa. Con una chiave Ed25519 non va copiato così com’è.

ssh-add ~/.ssh/id_rsa

Infine si copia la chiave pubblica sul Pi. Viene chiesta la password dell’account del Pi, per l’ultima volta:

ssh-copy-id <username>@<ip address>

Per verificare, ci si ricollega con lo stesso comando ssh di prima. Se il Pi non chiede più la password dell’account, l’accesso con la chiave funziona. Se sul computer manca ssh-copy-id, la pagina di Raspberry Pi sull’accesso remoto spiega il metodo manuale con scp e i permessi da dare alla cartella .ssh e al file authorized_keys.

Modificare la configurazione di sshd sul Pi senza restare chiusi fuori

Tutti i comandi di questa sezione si eseguono sul Raspberry Pi, non sul computer. Ci si collega con ssh <username>@<ip address> e li si lancia nella sessione aperta, oppure si lavora direttamente sul Pi con tastiera e monitor. Se li si lanciasse nel terminale del computer, si modificherebbe il server SSH del computer, ammesso che ne abbia uno.

Attenzione: con una configurazione di sshd sbagliata si può perdere l’accesso al Pi dopo il riavvio del servizio, e il server può anche rifiutarsi di partire. Prima di cominciare bisogna aver verificato che l’accesso con la chiave funziona. Poi si tiene aperta una sessione SSH già collegata al Pi finché un nuovo accesso da un altro terminale non va a buon fine. Se non resta nessun’altra via d’accesso, bisogna lavorare sul Pi con tastiera e monitor.

La procedura viene dalla documentazione di Ubuntu Server, che descrive Ubuntu e non Raspberry Pi OS. Prima, sul Pi, si salva una copia del file originale e la si rende di sola lettura, così resta come riferimento:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original

Poi si apre il file di configurazione del Pi:

sudo nano /etc/ssh/sshd_config

La pagina di Ubuntu mostra una modifica di esempio, facoltativa. Le stesse precauzioni valgono per qualsiasi altra direttiva. Quando un client si collega, prima dell’autenticazione il server risponde con un banner che riporta la versione di OpenSSH e quella del sistema operativo. Per togliere le informazioni sul sistema si aggiunge la riga DebianBanner no. In nano si salva con Ctrl+O e Invio e si esce con Ctrl+X. Per controllare il risultato, la pagina di Ubuntu apre una connessione verso la porta 22 della macchina stessa con nc, prima e dopo la modifica. Dopo il riavvio del servizio, nel banner non deve più comparire la parte che indica il sistema operativo.

Su Ubuntu il file principale comincia con la riga Include /etc/ssh/sshd_config.d/*.conf. Per quasi tutte le direttive OpenSSH usa il primo valore che trova, quindi i file di quella cartella hanno la precedenza. Su Raspberry Pi OS conviene guardare se in cima a /etc/ssh/sshd_config c’è la stessa riga. Se c’è, vanno controllati anche i file in /etc/ssh/sshd_config.d/.

Prima di riavviare, sul Pi si controlla la configurazione. Così un errore di sintassi viene fuori prima che il server si fermi:

sudo sshd -t

Se non compaiono errori, si riavvia il servizio sul Pi per applicare le modifiche:

sudo systemctl restart ssh

Subito dopo si prova un nuovo accesso da un altro terminale del computer, lasciando aperta la vecchia sessione. Per tornare alla configurazione di partenza si lavora ancora sul Pi. Nella sessione aperta, o con tastiera e monitor, si copia con sudo /etc/ssh/sshd_config.original al posto di /etc/ssh/sshd_config e si riavvia di nuovo il servizio ssh.

Seguire il log del servizio SSH sul Pi

Se l’accesso con la chiave non funziona, la pagina di Ubuntu suggerisce di seguire in tempo reale il log del servizio SSH sulla macchina a cui ci si collega. Qui quella macchina è il Pi: il comando si lancia lì.

sudo journalctl -fu ssh.service

Mentre il log scorre, si prova un accesso dal computer e si leggono le righe nuove. Per uscire dalla visualizzazione continua si preme Ctrl+C.

Attivare Raspberry Pi Connect per l’accesso da fuori casa

Connect permette di raggiungere il Pi dal browser, da qualsiasi rete, senza aprire porte e senza conoscere l’indirizzo IP. Richiede Raspberry Pi OS Bookworm o successivo. La guida introduttiva di Connect spiega che le versioni complete di Raspberry Pi OS lo includono, ma con il servizio spento. Serve un Raspberry Pi ID, nuovo o già esistente, con cui accedere a connect.raspberrypi.com. Poi, sul Pi, si accende il servizio:

rpi-connect on

A questo punto il servizio è acceso, ma il Pi non è ancora collegato all’account. Per collegarlo, sempre sul Pi:

rpi-connect signin

Il comando stampa un indirizzo di verifica simile a questo:

Complete sign in by visiting https://connect.raspberrypi.com/verify/XXXX-XXXX

Si apre l’indirizzo su un dispositivo qualsiasi, si accede con il Raspberry Pi ID e si dà un nome al Pi. All’email dell’account arriva la notifica di un nuovo dispositivo collegato. Lo stato si controlla così:

rpi-connect status
Signed in: yes
Subscribed to events: yes
Screen sharing: allowed (0 sessions active)
Remote shell: allowed (0 sessions active)

Da quel momento si va su connect.raspberrypi.com, nella scheda Devices: il pulsante Connect via apre la shell remota (Remote shell) o la condivisione dello schermo (Screen sharing). I dettagli sono nella pagina sull’accesso con Connect. Chi entra nell’account può entrare anche nel Pi, quindi conviene attivare l’autenticazione a due fattori sul Raspberry Pi ID. Se arriva la notifica di un dispositivo che non si riconosce, bisogna cambiare subito la password del Raspberry Pi ID e togliere quel dispositivo dalla dashboard.

Restare raggiungibili dopo un riavvio

Connect gira come servizio dell’utente, non come root, e funziona solo quando l’account ha una sessione aperta. Se il Pi si riavvia con il login automatico disattivato, diventa irraggiungibile. Le soluzioni sono due: lasciare attivo il login automatico, oppure abilitare lo user-lingering, che tiene Connect in funzione anche senza nessun login. Il comando si lancia sul Pi, dal proprio account utente e senza sudo:

loginctl enable-linger

Questo riguarda chiunque usi il Pi senza monitor e senza tastiera, anche con Raspberry Pi OS con desktop: senza una sessione aperta, dopo un riavvio a distanza la shell remota non risponde. La pagina di gestione di Connect raccomanda esplicitamente il lingering sulle installazioni headless di Raspberry Pi OS Lite. Per condividere lo schermo il lingering non basta: serve comunque una sessione grafica già aperta. C’è anche un altro limite: l’aggiornamento di Connect chiude le sessioni remote in corso. Se lo si aggiorna dalla shell remota, i comandi vanno lanciati dentro screen o tmux.

Ridurre le funzioni, scollegare o disinstallare Connect

Anche questi comandi si lanciano sul Pi. Chi usa solo la shell può disattivare la condivisione dello schermo, e chi usa solo lo schermo può fare il contrario. Per riattivarle si usano rpi-connect vnc on e rpi-connect shell on.

rpi-connect vnc off
rpi-connect shell off
Attenzione: se si disattivano entrambe le funzioni, Connect non raggiunge più il Pi. Resta solo SSH, che in questa guida funziona solo nella rete di casa.

Per scollegare il Pi dal proprio Raspberry Pi ID:

rpi-connect signout

Per fermare e rimuovere Connect si usa il comando qui sotto. Dopo la rimozione il Pi non è più raggiungibile da fuori casa.

sudo apt remove --purge rpi-connect

Anche dopo la disinstallazione il numero di serie del Pi resta legato all’account, e il dispositivo continua a comparire nella dashboard. Per rompere il legame va tolto dall’elenco dei dispositivi su connect.raspberrypi.com. Chi ha installato la variante Connect Lite, che questa guida non tratta, scrive rpi-connect-lite al posto di rpi-connect nel comando di disinstallazione.

Se qualcosa va storto

  • SSH risponde «connection timed out»: ricontrollare l’indirizzo IP, sul Pi o nel router. Controllare anche che il server SSH sia davvero attivo sul Pi, con uno dei metodi della prima sezione.
  • Connect non risponde dopo un riavvio o dopo la chiusura della sessione SSH: non c’è nessuna sessione attiva dell’utente. Si abilita lo user-lingering come descritto sopra. La condivisione dello schermo invece richiede una sessione grafica già aperta, che si ottiene attivando Desktop Autologin in System Options di raspi-config.
  • Lo stato riporta «Raspberry Pi Connect is not running»: si lancia rpi-connect on.
  • Connect non comunica su una rete molto restrittiva: sul Pi si lancia rpi-connect doctor, che esegue una serie di test e segna con una x quelli falliti. Vanno consentite le connessioni HTTPS sulla porta 443 verso api.connect.raspberrypi.com e ws.connect.raspberrypi.com. Va consentito anche il traffico verso i server STUN e TURN di Raspberry Pi, compresa la porta UDP 3478. L’elenco completo è nella pagina di troubleshooting di Connect.
  • La condivisione dello schermo risulta non disponibile: anche qui rpi-connect doctor indica quale requisito manca, per esempio il compositor Wayland o i servizi di condivisione non attivi.
  • Alcune combinazioni di tasti non arrivano al Pi: il browser intercetta scorciatoie come Ctrl+C. Nella shell remota si copia con il menu del tasto destro o con Ctrl+Ins e si incolla con Shift+Ins.

Documentazione di riferimento

Pagine consultate il 30 settembre 2026. La pagina di Ubuntu Server riguarda Ubuntu, non Raspberry Pi OS. Da lì vengono la chiave Ed25519, il backup e il controllo della configurazione di sshd, l’esempio DebianBanner e il log del servizio.

Leggi anche