8 mai 2021
Voici les manipulations que nous réalisons lorsque nous mettons une nouvelle image sur un Raspberry Pi. Nous utilisons un ordinateur sous Linux, que nous appellerons Ordinateur et le Rapsberry Pi que nous appellerons raspberrypi.
Téléchargeons la distribution Raspbian/RaspberryPi OS Lite. Vous pouvez la télécharger ici.
Extraire le fichier et le flasher vers la carte SD (toutes les données de la carte seront perdues). Pour cela, branchez la carte SD sur votre PC.
La commande sudo dmesg
vous donne le nom que votre système attribue à la carte :
[ 9667.333966] mmc0: new high speed SDHC card at address 1234
[ 9667.334257] mmcblk0: mmc0:1234 SA08G 7.29 GiB
Pour flasher l’image, utilisez la commande "dd". Soyez très prudent avec le paramètre "of=" car vous pouvez perdre toutes les données de n’importe quel disque connecté à votre ordinateur si vous entrez la mauvaise commande.
sudo dd if=/chemin/vers/mon/image/raspbian.img of=/dev/mmcblk0 status=progress
mmcblk0 est le nom que vous avez trouvé avec la commande dmesg
.
Activez le ssh sur votre nouvelle image [1] :
Créer un fichier "ssh" même vide dans la partition "boot".
cd /media/$USER/boot
touch ssh
C’est une procédure que je recommande à chaque nouvelle installation de Raspberry Pi.
Si besoin, trouver l’IP du Raspberry Pi :
Si vous avez un routeur performant, vous n’en avez pas besoin, vous pouvez utiliser "raspberrypi" à la place de son IP. Essayez ping raspberrypi.
poivron@Ordinateur:~$ ping raspberrypi
PING raspberrypi (192.168.1.43) 56(84) bytes of data.
64 bytes from raspberrypi (192.168.1.43): icmp_seq=1 ttl=64 time=1.44 ms
64 bytes from raspberrypi (192.168.1.43): icmp_seq=2 ttl=64 time=0.826 ms
Pour arrêter la commande "ping", utilisez la combinaison de touches : CTRL+C.
Si vous obtenez un temps de réponse, c’est que tout va bien.
Sinon, vous pouvez soit vous connecter sur le routeur pour avoir la liste des machines sur le réseau, soit utiliser nmap :
poivron@Ordinateur:~$ nmap -sn 192.168.1.0/24
Starting Nmap 7.70 ( https://nmap.org ) at 2021-05-01 18:13 CEST
...
Nmap scan report for raspberrypi (192.168.1.43)
Host is up (0.0011s latency).
...
Nmap done: 256 IP addresses (5 hosts up) scanned in 6.49 seconds
Dans la suite de l’article, dans un souci de lisibilité, nous utiliserons le nom de la machine et non l’IP. Utilisez l’IP si votre routeur est capricieux.
Connexion au raspberrypi :
poivron@Ordinateur:~$ ssh pi@raspberrypi
Si ce n’est pas votre premier raspberrypi, vous pouvez avoir ce message :
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:2KydhpF6eoYjO/QybMCu+ZT/D4K0AHZom6UPhgufS7c.
Please contact your system administrator.
Add correct host key in /home/poivron/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/poivron/.ssh/known_hosts:39
remove with:
ssh-keygen -f "/home/poivron/.ssh/known_hosts" -R "raspberrypi"
ECDSA host key for raspberrypi has changed and you have requested strict checking.
Host key verification failed.
Dans ce cas, suivez l’instruction, exécutez :
poivron@Ordinateur:~$ ssh-keygen -f "/home/poivron/.ssh/known_hosts" -R "raspberrypi"
# Host raspberrypi found: line 39
/home/poivron/.ssh/known_hosts updated.
Original contents retained as /home/samuel/.ssh/known_hosts.old
Vous entrez ensuite le mot de passe par défaut : raspberry
Et vous arrivez sur l’invite de commande.
pi@raspberrypi:~ $
Pour des raisons de sécurité et de praticité, je conseille de créer un nouvel utilisateur, le même que celui sur votre ordinateur. Et de désactiver l’utilisateur "pi".
Création de l’utilisateur :
pi@raspberrypi:~ $ sudo adduser poivron
Adding user
poivron' ...
Adding new group
poivron' (1001) ...
Adding new user poivron' (1001) with group
poivron' ...
Creating home directory /home/poivron' ...
Copying files from
/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for poivron
Enter the new value, or press ENTER for the default
Full Name []: <ENTRÉE>
Room Number []: <ENTRÉE>
Work Phone []: <ENTRÉE>
Home Phone []: <ENTRÉE>
Other []: <ENTRÉE>
Is the information correct? [Y/n] <ENTRÉE>
Ajout au groupe des "sudoers" :
pi@raspberrypi:~ $ sudo addgroup poivron sudo
Adding user
poivron' to group
sudo' ...
Adding user poivron to group sudo
Done.
Les "sudoers" sont les utilisateurs qui ont le droit d’utiliser la commande sudo, leur donnant les droits d’un administrateur. Sur une distribution de type "Debian" (comme raspbian), tous les membres du groupe "sudo" peuvent utiliser sudo sur toutes les commandes.
Vérification que tout s’est bien passé, on se déconnecte et on se reconnecte avec le nouveau compte :
pi@raspberrypi:~ $ logout
Connection to raspberrypi closed.
poivron@Ordinateur:~$ ssh raspberrypi
poivron@raspberrypi's password:
Remarquons que nous n’avons plus besoin de préciser l’utilisateur, ssh reprend l’utilisateur courant pour ouvrir la connexion distante.
Vous obtenez le message d’accueil :
Linux raspberrypi 5.10.17+ #1403 Mon Feb 22 11:26:13 GMT 2021 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
poivron@raspberrypi:~ $
Si c’est ce que vous obtenez, vérifiez que vous avez le droit d’utiliser "sudo".
poivron@raspberrypi:~ $ sudo echo "coucou"
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for poivron:
coucou
Si vous affichez bien "coucou", alors votre utilisateur est bien configuré.
poivron@raspberrypi:~ $ sudo deluser pi
Removing user
pi' ...
Warning: group
pi' has no more members.
Done.
Sur votre ordinateur, générer une clé :
ssh-keygen -t rsa -b 4096
Copier la clé publique sur le raspberrypi. A partir de votre ordinateur :
poivron@Ordinateur:~$ scp .ssh/id_rsa.pub poivron@raspberrypi:~/
poivron@raspberrypi's password:
id_rsa.pub
Puis, connectez-vous au raspberrypi, créez le répertoire /home/poivron/.ssh, puis ajoutez le contenu de id_rsa.pub (votre clé publique) au fichier authorized_keys.
poivron@Ordinateur:~$ ssh raspberrypi
poivron@raspberrypi:~$ mkdir .ssh
poivron@raspberrypi:~$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
poivron@raspberrypi:~$ logout
Reconnectez vous encore une fois au raspberrypi
poivron@Ordinateur:~$ ssh raspberrypi
Si vous avez protégé votre clé par un mot de passe, le système va vous demander de l’entrer, une seule fois par session.
Vous pouvez vous déconnecter du raspberrypi, vous reconnecter et vérifier qu’aucun mot de passe ne vous est demandé.
Bien, les choses sérieuses peuvent commencer.