Vous avez un/des raspis sur votre réseau, et vous devez souvent vous connecter en ssh dessus.
La méthode classique c’est de faire ssh pi@ip_raspi et de taper le mot de passe.
Mais à la longue ça devient lassant; et ça peut être bloquant pour des scripts qui devraient
automatiquement accéder au raspi via SSH sans que vous soyez là pour taper le mot de passe.
La solution : exporter votre clé publique SSH vers le raspi (ou la cible ssh souhaitée, raspi ou pas).

Pour cela, on va utiliser ssh-copy-id, qui va copier votre clé publique de votre machine locale vers la machine distante. Une fois ceci fait, quand vous ferez ssh pi@ip_raspi, aucun mot de passe ne sera demandé, donc vous serez automatiquement connecté.

Étape 1 : générer vos clés si ce n’est pas déjà fait.

Si vous avez déjà généré vos clés, passez à l’étape suivante. Sinon, il suffit de taper la commande suivante : ssh-keygen.

La commande vous demandera alors ou stocker les clés, puis une passphrase pour protéger celles ci. Si vous ne saisissez rien pour le fichier de stockage, l’emplacement par défaut sera utilisé.

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:7wFJMVP9+v97O1UG51R4PdSkqFQd9wfZEIpvQCl0zIU pi@raspberrypi
The key's randomart image is:
+---[RSA 2048]----+
| .=++=o.*XB|
| .*Eo.o==O|
| ..+ o..*+|
| . o + . =|
| S . o. ..|
| o .. .|
| o . .|
| . . ...|
| . +O|
+----[SHA256]-----+

Ici j’ai exécuté la commande sur un raspberry pi, mais c’est bien sur votre machine depuis laquelle vous travaillez que vous devez exécuter cette commande.

Étape 2 : exporter sa clé SSH vers la machine distante avec ssh-copy-id

On va maintenant exporter la clé SSH vers la cible avec ssh-copy-id : ssh-copy-id -i ~/.ssh/id_rsa.pub pi@ip_raspi

On vous demandera le mot de passe du raspberrypi, et une fois que vous l’aurez saisi, la machine distante recevra votre clé publique SSH.

Du coup à la prochaine connexion vous aurez juste à taper ssh pi@ip_raspi :

ssh sans saisie de mot de passe

La connexion SSH se fait sans saisir de mot de passe depuis cette machine

Maintenant que ceci est fait, vous pourrez plus facilement utiliser rsync, scp, ansible, ou d’autres outils du genre pour administrer et maintenir facilement et rapidement votre machine distante.

Dans un prochain billet, nous verrons comment utiliser rsync pour copier des fichiers depuis votre poste local vers le raspi en une ligne de commande.vers un raspi 

Liens

Un seul lien, indispensable pour ce sujet : la documentation officielle de ssh-copy-id

Réseaux sociaux