PI-SSH

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Introduction

Secure Shell (SSH) est à la fois un programme informatique et un protocole de communication sécurisé. Il permet de prendre le contrôle d'une machine comme Raspberry PI à distance en utilisant une console.

Si cela peut paraître rudimentaire, c'est également extrêmement puissant... car il est possible de profiter du confort de son pc tout en communiquant et contrôlant son PI sans être physiquement sur place.

SSH inactif par défaut

SSH n'est plus actif au démarrage du Raspberry Pi, il faut l'activer par l'intermédiaire de l'utilitaire raspi-config (ou en modifiant la carte SD depuis votre ordinateur).

sudo raspi-config

Il suffit donc d'utiliser le logiciel adéquat pour entamer une connexion SSH (de type console en ligne de commande) avec le Raspberry PI. La seule chose a connaître, c'est l'adresse IP du Rapsberry sur votre réseau.

La session SSH requière une authentification de l'utilisateur. Cela se fait à l'aide du login/mot de passe par défaut de votre Raspberry qui sont:

  • login: pi
  • mot de passe: raspberry

L'adresse IP du Raspberry

Méthode directe

Le plus direct est d'utiliser la commande ifconfig dans un terminal du raspberry pi.

Cette commande fournit les information réseaux, y compris l'adresse IP.

pi@raspberrypi ~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:ca:09:02  
          inet addr:192.168.1.17  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43219 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21461 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5654395 (5.3 MiB)  TX bytes:2674475 (2.5 MiB)

L'adresse IP se trouve sur la ligne "inet addr" et est donc "192.168.1.17"

Méthode indirecte - Consulter le routeur

La plupart d'entre nous utilise un routeur tels que la BeBox de Belgacom ou une FreeBox (ou équivalent).

Lorsque Raspberry démarre, il fait une demande d'adresse IP auprès de la BOX.

La box maintient une liste des adresse IP récemment alloué... et le routeur est souvent accessible depuis un simple navigateur internet.

Le routeur est souvent accessible via l'adresse 192.168.1.1

DnsAlloc.jpg

Méthode indirecte - ping

Une autre méthode est de faire un ping des différentes adresses IP pour identifier celles qui sont allouées (qui retourne des information et non pas des erreurs).
Il suffit de commencer dans les adresses les plus passe (192.168.1.2) et d'augmenter le dernier chiffre essai par essai.
L'instruction ping est disponible sur la plupart des système d'exploitation.

ping 192.168.1.16

Voici un retour indiquant qu'il n'y a pas machine sur cette adresse IP

PING 192.168.1.16 (192.168.1.16) 56(84) bytes of data.
From 192.168.1.3 icmp_seq=2 Destination Host Unreachable
From 192.168.1.3 icmp_seq=3 Destination Host Unreachable
From 192.168.1.3 icmp_seq=4 Destination Host Unreachable

Par contre:

ping 192.168.1.17

retourne une information nous indiquant la présence d'une machine (le temps de réponse en ms).

PING 192.168.1.17 (192.168.1.17) 56(84) bytes of data.
64 bytes from 192.168.1.17: icmp_req=1 ttl=64 time=3.06 ms
64 bytes from 192.168.1.17: icmp_req=2 ttl=64 time=0.720 ms

Reste alors a tenter une connexion SSH sur cette adresse IP nouvellement découverte. Si c'est un Raspberry PI, vous serez invité à entrer le mot de passe. Ensuite,

Méthode indirecte - nmap

Si vous utilisez un système unix/linux, vous pouvez très facilement détecter les adresses IP utilisées sur votre réseau local.

En utilisant la commande suivante, vous allez scanner tout le sous réseau de 192.168.1.x (c'est la gamme d'adresse IP la plus répandue pour les réseaux domestiques).

nmap -sP 192.168.1.0/24

Ce qui produit une série d'adresse IP:

PI-SSH-NMAP-00.jpg

L'adresse 192.168.1.1 est celle du routeur. Notre Pi s'adressant au serveur DHCP, il devrait donc avoir recu l'adresse 192.168.1.3 ou 192.168.1.4 (les deux autres adresses étant, dans notre cas, des serveurs de fichier en IP Fixe)

Tapons maintenant la commande suivante pour en apprendre sur l'adresse IP qui nous intéresse... (ex: commençons par 192.168.1.3)

nmap -sS 192.168.1.3

PI-SSH-NMAP-01.jpg

Bingo, nous avons trouvé notre Pi et en plus le port SSH est activé :-)

Client SSH

Pour se connecter en SSH sur le Raspberry on utilise un logiciel qu'on appelle SSH Client.

Il y a deux type de clients:

  • Le logiciel émulateur (comme putty)
  • Une commande unix/linux tel que ssh.

Logiciel SSH Client

Le plus connu sous Windows, Mac et Linux est Putty (Putty sur WikiPedia) qui se trouve être un logiciel libre. Pour Ubuntu, il est même disponible depuis la logithèque.

PuttySsh.jpg

Source: diddy.boot-land.net

la commande ssh

Sous les systèmes Unix/Linux il est également possible d'utiliser directement la commande ssh depuis un terminal.
Cette commande permet de démarrer une connexion ssh client avec une machine distante.
Cette approche est terriblement pratique.

ssh pi@192.168.1.17

Le "pi" devant le signe @ est le nom d'utilisateur avec lequel on connecte sur le Raspberry.
L'adresse ip 192.168.1.17 est celle du Raspberry PI.
Une fois la connexion établie, vous serez invité à encoder le mot de passe de l'utilisateur "pi".
Le mot de passe par défaut sur un Rapsberry pour l'utilisateur pi est "raspberry" (il est important de changer ce mot de passe dès que possible).

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Si vous changez de Pi ou de système d'exploitation sur une même adresse IP, vous aurez immanquablement le message d'erreur suivant au moment de la connexion SSH.

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

En effet, votre ordinateur dispose d'une clé d'encryption pour l'adresse IP qui ne correspond plus à celle de votre PI (puisque vous avez changez d'OS ou de Pi).

Résoudre ce problème est assez simple sur un système Linux, il suffit d'employer la commande suivante:

ssh-keygen -R <ip> 

Voilà!

Normalement, là vous devriez pouvoir découvrir et obtenir une connexion ssh avec un Raspberry PI.

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.