Per abilitare l'accesso via SSH senza poter utilizzare monitor o tastiera del Raspberry Pi è sufficiente creare un file di nome ssh nella partizione boot della microSD (ovviamente estraendola dal Raspberry e montandola in un PC).
Al reboot successivo il servizio ssh verrà attivato in modo permanente e il file /boot/ssh rimosso.
ATTENZIONE: Fino alla versione RaspiOS basata su Debian 10 Buster l'utente root ha la password bloccata e comunque sshd impedisce l'accesso a root con password (PermitRootLogin prohibit-password
). L'utente pi invece ha password predefinita raspberry e può diventare superutente con sudo.
Dalla versione RaspiOS basata su Debian 11 Bullseye anche l'utente pi
ha la password bloccata, quindi non è possibile fare accesso via ssh con password. Per attivare l'utente pi con una propria password è necessario creare un file /boot/userconf con questo contenuto:
pi:$6$hM909zCtb36kTuHt$yJjk4...
dove la stringa che segue i due punti è l'hash SHA256 della password, ottenibile con il comando:
echo raspberry | openssl passwd -6 -stdin
Vedere la manpage openssl-passwd(1SSL) per le opzioni di openssh
.
Per attivare l'interfaccia WiFi senza accedere in maniera interattiva all'installazione del Raspberry Pi è sufficiente creare un file di nome wpa_supplicant.conf nella partizione boot della microSD. Il contenuto deve essere qualcosa del genere (è possibile specificare più di una sezione network per più reti WiFi):
country=IT ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="NETWORK-NAME" psk="NETWORK-PASSWORD" }
ATTENZIONE! Se non si ha una tastiera collegata al Raspberry Pi l'esecuzione di raspi-config ⇒ Localisation Options ⇒ Change Keyboard Layout non funziona. Inutile installare e configurare console-data come suggerito da questo post. In pratica se non esiste una tastiera fisica collegata all'host il comando dpkg-reconfigure keyboard-configuration termina senza generare output. Non è un problema dovuto alla sessione ssh come suggerito da questo post: Keyboard configuration doesn't work via SSH?.
Per far funzionare correttamente raspi-config conviene eseguirlo da utente pi con il comando sudo raspi-config; se si effettua il login direttamente come root oppure se si diventa root da qualche altro utente ci potrebbero essere dei problemi di funzionamento.
Per configurare la tastiera si sceglie da raspi-config la voce Localisation Options ⇒ Change Keyboard Layout. Oppure da riga di comando si esegue
dpkg-reconfigure keyboard-configuration
Nella versione RaspiOS 2020-05-27 a volte non funziona (non si avvia) l'interfaccia testuale di configurazione. Provare ad eseguire nell'interfaccia grafica il programma Preferences ⇒ Keyboard and Mouse ⇒ Keyboard ⇒ Keyboard Layout…
Il file che viene creato è /etc/default/keyboard, questo un esempio per una tastiera italiana e il tasto LeftLogo associato alla funzione compose:
XKBMODEL="pc105" XKBLAYOUT="it" XKBVARIANT="" XKBOPTIONS="compose:lwin" BACKSPACE="guess"
Per attivare il VNC Server sul Raspberry Pi si esegue in una shell raspi-config quindi Interfacing Options ⇒ VNC.
Su un PC remoto su lancia il comando vncviewer, ma si ottiene l'errore:
CConnection: Using RFB protocol version 3.8 CConnection: No matching security types
Questo perché il viewer (client) non supporta la crittografia del VNC Server in esecuzione sul Raspberry Pi. È necessario disabilitare la crittografia, ma possibilmente impostare una password di accesso. Per ottenere questo risultato si deve creare un file /root/.vnc/config.d/vncserver-x11 che contenga:
Authentication=VncAuth Encryption=AlwaysOff Password=????????
quindi il campo password (che conterrà un hash della password stessa) deve essere aggiornato eseguendo il comando:
vncpasswd -service
In alternativa a vncpasswd è possibile eseguire il programma VNC Server in modalità grafica (cliccando sull'icona nella pannello) e poi cliccare sul link Authentication ⇒ Change password.
Abbiamo provato una tastiera Bluetooth Perixx Periboard 804II.
Per connetterla la prima volta al Raspberry Pi è necessario accenderla e premere il pulsantino connect sul retro, la tastiera si mette in modalità pairing ed il led Bluetooth inizia a lampeggiare. Quindi sul Raspberry, da riga di comando, si esegue una shell bluetoothctl. Quella che segue è la sessione per il paring e il connect. Quando viene mostrato il PIN, questo va digitato sulla tastiera seguito dal tasto Enter:
# bluetoothctl Agent registered [bluetooth]# power on Changing power on succeeded [bluetooth]# agent on Agent is already registered [bluetooth]# default-agent Default agent request successful [bluetooth]# scan on Discovery started [CHG] Controller B8:27:EB:76:B3:62 Discovering: yes [NEW] Device 41:39:4E:4D:D2:64 41-39-4E-4D-D2-64 [NEW] Device CC:C5:0A:0E:0B:EB CC-C5-0A-0E-0B-EB [CHG] Device CC:C5:0A:0E:0B:EB LegacyPairing: no [CHG] Device CC:C5:0A:0E:0B:EB Name: Bluetooth Keyboard [CHG] Device CC:C5:0A:0E:0B:EB Alias: Bluetooth Keyboard [CHG] Device CC:C5:0A:0E:0B:EB LegacyPairing: yes [bluetooth]# pair CC:C5:0A:0E:0B:EB Attempting to pair with CC:C5:0A:0E:0B:EB [CHG] Device CC:C5:0A:0E:0B:EB Connected: yes [agent] PIN code: 493972 [CHG] Device CC:C5:0A:0E:0B:EB Modalias: usb:v04E8pA02Ad0001 [CHG] Device CC:C5:0A:0E:0B:EB UUIDs: 00001000-0000-1000-8000-00805f9b34fb [CHG] Device CC:C5:0A:0E:0B:EB UUIDs: 00001124-0000-1000-8000-00805f9b34fb [CHG] Device CC:C5:0A:0E:0B:EB UUIDs: 00001200-0000-1000-8000-00805f9b34fb [CHG] Device CC:C5:0A:0E:0B:EB ServicesResolved: yes [CHG] Device CC:C5:0A:0E:0B:EB Paired: yes Pairing successful [CHG] Device CC:C5:0A:0E:0B:EB ServicesResolved: no [CHG] Device CC:C5:0A:0E:0B:EB Connected: no [bluetooth]# connect CC:C5:0A:0E:0B:EB Attempting to connect to CC:C5:0A:0E:0B:EB [CHG] Device CC:C5:0A:0E:0B:EB Connected: yes Connection successful [CHG] Device CC:C5:0A:0E:0B:EB ServicesResolved: yes [Bluetooth Keyboard]# trust CC:C5:0A:0E:0B:EB [CHG] Device CC:C5:0A:0E:0B:EB Trusted: yes Changing CC:C5:0A:0E:0B:EB trust succeeded
Avendo attivato il trust la tastiera verrà collegata automaticamente ad ogni riavvio, è sufficiente che sia accesa.
Cosa accade se usiamo la tastiera accoppiata con un altro dispositivo? Sarà necessario fare di nuovo il paring?
Abbiamo provato una tastiera wireless K810 (commercializzata su Amazon con il marchio WisFox oppure TedGem) abbinata ad un dongle USB che gestisce contemporaneamente un mouse wireless.