Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


Accès SSH à un Raspberry PI depuis un PC du réseau

Pré-requis

Première étape : localiser le RPI sur le réseau

Installez-vous sur le PC du réseau à relier au RPI.

Retrouvez le RPI sur le réseau en lançant :

...@...:~$ ping raspberrypi.local -c 1
PING raspberrypi.local (192.168.0.21) 56(84) bytes of data.
64 bytes from 192.168.0.21 (192.168.0.21): icmp_seq=1 ttl=64 time=245 ms

--- raspberrypi.local ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 245.513/245.513/245.513/0.000 ms

On constate que :

  • le RPI est connecté en 192.168.0.31
  • La connexion SSH est disponible.

Autres étapes

Lancer une session ssh

Lancez une session SSH sur l'adresse du RPI sous l'utilisateur pi (l'adresse réseau de la RPI, retrouvée par nmap, est supposée 192.168.0.31) :

...@...:~$ ssh pi@raspberrypi.local
Warning: the ECDSA host key for 'raspberrypi.local' differs from the key for the IP address '192.168.0.31'
Offending key for IP in /home/nicolas/.ssh/known_hosts:11
Matching host key in /home/nicolas/.ssh/known_hosts:12
Are you sure you want to continue connecting (yes/no)? yes
pi@raspberrypi.local's password: 
Linux raspberrypi 4.19.118-v7+ #1311 SMP Mon Apr 27 14:21:24 BST 2020 armv7l

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.
Last login: Thu Jul 30 21:32:10 2020

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.

pi@raspberrypi:~ $ 
  • A la première connexion, répondez yes pour accepter la demande d’autorisation de clé de cryptage du SSH
  • A la demande de mot de passe, tapez raspberry (réglage d'usine).
  • En dernière ligne, le prompt confirme que vous n'êtes plus sur la console du pc mais sur celle du RPI.

En cas de réinstallation, Il se peut qu'un message s'affiche :

...:~$ ssh pi@192.168.0.31
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
...
  remove with:
  ssh-keygen -f "/home/xxxxxxx/.ssh/known_hosts" -R "192.168.0.31"
...
Host key verification failed.

Dans ce cas, faites comme demandé :

$ ssh-keygen -f "/home/xxxxxxx/.ssh/known_hosts" -R 192.168.0.31

et recommencez.

Accéder au RPI via SSH sans fournir de mot de passe

Pour ne pas avoir à fournir le mot de passe à chaque connexion SSH au RPI,

  • placez-vous sur le PC et tapez :

    ...:~$ ssh-keygen -t dsa
    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/xxxxxxx/.ssh/id_dsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/xxxxxxx/.ssh/id_dsa.
    Your public key has been saved in /home/xxxxxxx/.ssh/id_dsa.pub.
    The key fingerprint is:
    SHA256:kVpG+4aYTuDIvXIDg7vfTbGHTcw7p9MVHR2kFbRYI44 nicolas@chateau
    The key's randomart image is:
    +---[DSA 1024]----+
    |        .    .oXo|
    |       . o  o B +|
    |    .   *  E = o |
    | o + . O +  . .  |
    |. = o * S o  .   |
    | . o + * o  .    |
    |. . + = =...     |
    | . + + ..+.      |
    |... . . ..       |
    +----[SHA256]-----+
    ...:~$ 

    Répondez ↵ Entrée à chaque fois pour ne pas avoir de mot de passe et acceptez les noms de fichier.

  • Envoyez au RPI la clé publique ainsi générée :

    ...:~$ ssh-copy-id pi@192.168.0.31
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    pi@192.168.0.31's password: 
    
    Number of key(s) added: 2
    
    Now try logging into the machine, with:   "ssh 'pi@192.168.0.31'"
    and check to make sure that only the key(s) you wanted were added.

  • Reconnectez-vous au RPI :

    $ ssh pi@192.168.0.31

    et donnez une dernière fois le mot de passe.

  • Déconnectez-vous. Maintenant, vous pouvez vous connecter au RPI via SSH sans mot de passe.

Pour automatiser cette connexion,

  • créez avec les droits d'administration le fichier ~/.ssh/config pour y écrire ceci :
    ~/.ssh/config
    Host framboise
    User pi
    Hostname 192.168.0.31
    # framboise.local
    Port 22
    CheckHostIP no
    LocalForward 5900 127.0.0.1:5900
    Compression yes
    ForwardX11 yes

Il suffit maintenant de :

$ ssh framboise

pour lancer une session SSH sur le RPI :

  • sous l'utilisateur pi
  • sans mot de passe
  • et en mode graphique

Conclusion

Problèmes connus

$ ssh pi@192.168.0.31
sign_and_send_pubkey: signing failed: agent refused operation

Les autorisations de fichier sont trop ouvertes (0644).

Solution Les changer ainsi :

$ chmod 600 ~/.ssh/id_rsa

Voir aussi


Basé sur « Article » par Auteur.