Portachiavi

Guida alla configurazione di Raspberry Pi per utilizzare l'autenticazione con chiave SSH con l'applicazione RaspController

L’app RaspController dispone di un portachiavi che può contenere tutte le chiavi generate tramite l’applicazione stessa oppure tramite Raspberry Pi con il comando ssh-keygen.

È possibile accedere al portachiavi direttamente tramite le impostazioni dell’applicazione oppure durante la configurazione/modifica di un nuovo dispositivo.

Come generare chiavi SSH con RaspController

Premi il pulsante “+” sul portachiavi per aggiungere una nuova chiave.

Ora, tramite la scheda “Genera”, inserisci il nome della chiave (facoltativo, ma utile per riconoscere le chiavi quando ce ne sono molte), seleziona il tipo di chiave (ED25519 o RSA) e la sua dimensione, infine inserisci una passphare per crittografare la chiave (facoltativo, ma consigliato per proteggere la chiave).

A questo punto è possibile generare la coppia di chiavi (pubblica e privata). La chiave privata verrà utilizzata da RaspController, mentre la chiave pubblica dovrà essere copiata sul Raspberry Pi.

Per esportare la chiave pubblica basta cliccare sul menu relativo alla chiave creata e scegliere “Esporta” o “Condividi”, quindi trasferisci la chiave sul Raspberry Pi (consigliamo di utilizzare la cartella /home/user/.ssh/)

Ora puoi andare direttamente alla configurazione del client SSH.

RaspController - Generate key pair
RaspController - Export public key

Come generare chiavi SSH con Raspberry Pi

Per generare una nuova chiave SSH di tipo RSA digita il seguente comando nel terminale Raspberry Pi:

ssh-keygen -t rsa

conferma il nome del file con INVIO e inserisci una passphrase (raccomandata).

Per le chiavi di tipo Ed25519 (potrebbe non funzionare correttamente):

ssh-keygen -t ed25519

Per le chiavi di tipo ECDSA:

ssh-keygen -t ecdsa

Dopo aver generato la coppia di chiavi continua con la configurazione del client SSH.

Configurazione del client SSH

Modifica il file ‘sshd_config’:

sudo nano /etc/ssh/sshd_config

modifica la riga ‘AuthorizedKeysFile’ rimuovendo il simbolo # (se presente) e aggiungendo:

.ssh/<public_file_name>.pub   (eg ‘id_rsa.pub’)

<public_file_name>.pub è la chiave privata che è stata generata con il comando ssh-keygen oppure generata con RaspController e poi copiato nella cartella /home/<user>/.ssh/

Se non utilizzi alcuna passphrase devi modificare il file /etc/ssh/sshd_config con 'PermitEmptyPasswords yes'.

Salva il contenuto del file premendo CTRL + X (per uscire da nano), rispondi “Si” alla richiesta di salvataggio, quindi conferma con INVIO.

Ora riavvia il servizio ssh con:

sudo /etc/init.d/ssh restart

oppure riavvia Raspberry Pi.

Uso della chiave su RaspController

Quando si configura un dispositivo, è possibile utilizzare la password o la chiave privata per l’autenticazione.

Per associare una chiave privata al dispositivo, premere il pulsante con l’icona della chiave, verrà visualizzato il portachiavi. È possibile selezionare una chiave esistente, generare una coppia di chiavi oppure importare una chiave generata con Raspberry Pi.

Ricordati di inserire anche la password sudo, necessaria per installare i pacchetti richiesti da RaspController.

RaspController - Device configuration

Come importare chiavi SSH generate con Raspberry Pi

Nel portachiavi premi il tasto “+” per aggiungere una nuova chiave, quindi seleziona la scheda “Importa”.

Inserisci il nome della chiave (facoltativo ma utile per identificarla).

È possibile importare la chiave privata selezionando un file oppure è possibile incollare il contenuto della chiave toccando a lungo la casella di testo e selezionando “Incolla” nel menu visualizzato.

Se lo desideri, puoi anche importare la chiave pubblica (facoltativo, non necessario per il corretto funzionamento).

Infine inserisci la passphrase utilizzata per crittografare la chiave (lascia vuoto se non è stata utilizzata alcuna passphrase).

Dopo aver salvato, la chiave viene aggiunta al portachiavi. Ora puoi associarla a un dispositivo.

RaspController - Import SSH key

Solo per utenti diversi da 'pi'

Se stai utilizzando un utente diverso dal classico “pi”, rimuovi la richiesta di password da questo utente.

Crea un file sudoers personalizzato utilizzando (sostituisci bob con il tuo utente):

sudo visudo /etc/sudoers.d/010_bob-nopasswd

Inserisci il seguente contenuto su una singola riga:

bob ALL=(ALL) NOPASSWD: ALL

Salva il file ed esci.

Solo per utente root

Le chiavi create in precedenza sono posizionate nella cartella utente ‘pi’, inoltre ora devi copiare la chiave pubblica nella directory root.

Crea la directory ssh (se non esiste) [~ is Alt Gr + ì]:

sudo mkdir ~root/.ssh

Copia la chiave:

sudo cp ~/.ssh/id_rsa.pub ~root/.ssh/id_rsa.pub

(per chiavi Ed25519 il nome del file è ‘id_ed25519.pub’)