Come configurare un Raspberry Pi senza monitor, tastiera o mouse

Le due cose fondamentali che bisogna effettuare ogni volta che installate Raspbian è quella di connettere il Wi-Fi e attivare la connessione SSH.

E ogni volta, può essere una rottura dover collegare mouse, tastiera e monitor se avete intenzione di utilizzarlo come server sempre acceso e non come dispositivo desktop.
Le due cose che dovrete fare, dopo aver scritto la microSD con Raspbian, sarà quella di montare la partizione boot e navigarci all’interno con:

cd /Volumes/boot

Poi create un file ssh per attivare la connessione SSH sulla porta 22 (l’username sarà pi e la password raspberry):

touch ssh

Invece per configurare il Wi-Fi (nel caso non possiate utilizzare la porta Ethernet):

sudo nano wpa_supplicant.conf

E incollare dentro e salvare con CTRL+X:

country=IT
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="Wi-Fi name"
    psk="your secret password"
}

Ora potrete estrarre la microSD, inserirla dentro il vostro piccolo Pi e connetterlo alla rete elettrica! Buon divertimento!

Come connettersi in SSH senza password

Sul vostro client eseguite:

sudo su
ssh-keygen

E poi premete invio 3 volte per generare una public-private key pair.

Ora eseguite (con l’indirizzo IP modificato e l’utente) per copiare ~/.ssh/authorized_keys sull’host:

ssh-copy-id -i ~/.ssh/id_rsa.pub pi@192.168.1.6

Voilà, ora potrete connettervi direttamente senza dover reinserire ogni volta la password!

Provate voi stessi con uno script bash:

#!/bin/bash

ssh pi@192.168.1.6 "./prova.py"

Se invece usate Docker (ad esempio Home Assistant, qui la guida su come installarlo con Docker) la procedura è un po’ diversa. Vediamo come:

mkdir ~/hass/ssh
ssh-keygen -t rsa -f ~/hass/ssh/id_rsa
ssh-copy-id -i ~/hass/ssh/id_rsa pi@192.168.1.6

E poi create uno script all’interno di ~/hass/script/ specificando un po’ più di parametri (considerate anche che il /config/ssh è un percorso relativo all’immagine Docker):

#!/bin/bash

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/ssh/id_rsa kvm-pi@192.168.1.6 -tt 'bash -l -c "./prova.py"

Cos’è il protocollo SCP

Come dice il titolo stesso, è un protocollo di rete che permette il trasferimento di file in modo sicuro tra un server e un host o tra due host (anche se di per se c’è sempre uno che fa da server e uno da host) in modo sicuro. La sigla SCP, molto semplicemente, sta per secure copy protocol ed è molto usato in ambiente UNIX-like.

Qui: https://www.computerhope.com/unix/scp.htm potete vedere la documentazione intera ma è molto semplice da utilizzare e potrete utilizzarlo per velocizzare backup o trasferimenti vari tramite script Bash o schedulazioni cron.

La cosa fondamentale del protocollo SCP è che è basato su SSH.

Nei prossimi articoli vedremo come trasferire file in modo semplice e veloce.

Photo by israel palacio on Unsplash

Cos’è un protocollo

Detto brevemente, senza andare troppo nello specifico, un protocollo (di rete) è un insieme di regole che si utilizzano per comunicare.

E per comunicare si intende, ovviamente, trasferire informazioni tra due dispositivi (potrebbero anche essere definiti client e server) che possono essere di qualunque tipo.

Un esempio di protocollo può essere SMB (come installare Samba) utilizzato per trasferire file da un Raspberry a un altro dispositivo connesso alla stessa rete locale. Oppure AFP, il protocollo di Apple. O addirittura la tecnologia Zigbee è un protocollo che sta avendo molto successo nell’ultimo periodo.

Documentazione di AFP sul sito di Apple

Con i prossimi articoli andremo ad introdurre altri esempi di protocolli di rete.

Come connettersi SSH al Raspberry Pi

Anche questa semplice guida come quella per aggiornarlo potrà sembrar banale per molti, però probabilmente per altrettanti non è così tutto ovvio e nessuno nasce imparato.

Presupponendo che il vostro computer sia connesso alla stessa rete locale (Wi-Fi o ethernet che sia) e che il Raspberry abbia l’SSH server attivo, nel caso attivatelo in questo modo.
E presupponendo anche che non abbiate cambiato hostname (raspberrypi.local) ne username (pi in questo caso) lasciando quelli di default di Raspbian.

Ora dipende tutto dal sistema operativo dal quale vi volete connettere.

Se siete da macOS o da Linux, vi basterà aprire il terminale e digitare:

ssh pi@raspberrypi.local

Inserire la password (che di default sarà raspberry) e voilà, collegati! Ora potrete comandare a distanza il vostro Raspberry senza dover avere una tastiera collegata o un monitor.

Se invece siete da Windows dovrete installare un software per poterlo fare, ad esempio Putty. Seguite i passaggi e nei parametri mettete come sopra, raspberrypi.local come hostname e pi come user.

Mentre se non avete un computer ma uno smartphone, per iOS c’è Terminus mentre per Android JuiceSSH.

Come abilitare SSH su Raspberry Pi senza tastiera o mouse

Se state configurando il vostro Raspberry Pi nuovo di zecca e non avete voglia di collegarlo a un display con rispettivo mouse e tastiera, ho una soluzione facile e veloce per voi.

Semplicemente inserite la microSD nel vostro computer, andate nella partizione boot  e create un file chiamato ssh. Senza estensione o contenuto, solo e unicamente ssh.

Ora scollegate la memory, rimettetela nel Rasperry Pi e voilà. Eccovi con l’SSH attivo!