Nous avons vu dans la première partie comment se connecter au raspberry-pi en utilisant le logiciel Putty et le protocole SSH pour configurer le Raspberry-Pi. Mais qu’est-ce que c’est SSH. ?

Présentation de SSH

Beaucoup parle de SSH, pour se connecter à un système linux, pour faire un tunnel pour contourner le proxy de votre boite (non je n’ai jamais dit ça d’ailleurs vous ne trouverez pas de tutoriel pour faire ce genre de chose sur ce blog :))))) )

Sachant qu’il est hors de question d’utiliser l’interface graphique du raspberry-pi et qu’il n’y a ni clavier ni écran de connecté à celui-ci, nous devons utiliser SSH pour se connecter à distance et exécuter les diverses commandes.

Bon enfin bref ce qu’il faut savoir sur SSH

  • c’est que SSH veut dire Secure Shell,
  • qu’il y a une version 1.0 et 2.0,
  • qu’il permet de se connecter à un ordinateur distant de façon sûre et d’avoir une ligne de commande,
  • que c’est le digne successeur de Telnet (port 23) mais en version sécurisée sur le (port 22).

 En prérequis nous avons besoin de:

  • Avoir suivi cette première partie (Bonjour, je vous présente le Raspberry-Pi et son installation),
  • Puttygen

Si vous voulez en savoir un peu plus parce que vous êtes un grand curieux je peux vous orientez vers ces différentes sources:

Installation

Par défaut sur un raspberry-pi, openSSH est installé donc pas besoin de s’embêter à faire l’installation.

Pour information l’installation est très compliquée:

 sudo apt-get install openssh-server

 

Les commandes utiles :

Pour lancer le service:

sudo service ssh start

 Pour arrêter le service:

sudo service ssh stop

 Pour  relancer le service:

 sudo service ssh restart

Configuration de SSH

Dans beaucoup de tutoriels que j’ai regardé il n’y a pas grand monde qui parle de sécuriser au minimum le Raspberry-pi.

Evidement si celui-ci est sur votre réseau local il n’y a pas trop besoin, mais s’il est accessible depuis le net je pense qu’il y’a un minimum de choses à faire pour éviter quelques désagréments.

Je ne suis pas un expert en sécurité mais voici une petite liste d’action à mener.

Tout se passe dans le fichier /etc/ssh/sshd_config.

Donc pour l’éditer:

sudo nano /etc/ssh/sshd_config

 

Changer les différentes valeurs suivantes:

PermitRootLogin no Le serveur refuse que l’utilisateur et administrateur root ne se connecte en direct.
Port 22 On retrouve sur quelques sites le changement de port pour le service SSH. Personnellement je ne le fais pas car si quelqu’un scan votre machine il verra les ports ouverts et essaiera d’y passer pour rentrer sur votre machine donc qu’il soit sur le 22 ou 4444 le mec tentera.
PasswordAuthentication no Rend la connexion en SSH possible uniquement avec un système de clés privées, clés publiques.
PubkeyAuthentication yes  Permet l’authentification par clés privées, clés publiques.
UsePAM no Si vous voulez désactiver le passphrase. Necessite PubkeyAuthentication à yes
X11Forwarding no Désactive la partie affichage graphique déportée.

 

Vous pouvez aussi définir les utilisateurs qui peuvent se connecter au SSH avec le paramètre: AllowUsers.

Il vous reste plus qu’à enregistrer et quitter le fichier.

Pour que le service SSHd prenne en compte les modifications nous pouvons utiliser cette commande:

sudo service ssh reload

Si vous en voulez un peu plus:

http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html

Ou faite un:

man  ssh

02 - SSH - man

Vous avez vu que nous avons désactivé le système de mot de passe, vous n’êtes pas  obligé de le faire et /ou pouvez retarder la modification des paramètres PasswordAuthentication, PubkeyAuthentication et UsePAM pour ne pas être coincé si une erreur se produit lors de la manipulation de la mise en place d’une clé privée / publique pour se connecter à notre raspberry-pi.

Authentification par clé SSH

Pourquoi utiliser une clé publique/privée ?

Tout simplement pour sécuriser un peu mieux notre serveur d’un simple couple login / mot de passe.

En gros :

L’authentification par clé fonctionne grâce à 3 composants :

  • Une clé publique : elle sera exportée sur chaque hôte sur lequel on souhaite pouvoir se connecter.
  • Une clé privée : elle permet de prouver son identité aux serveurs.
  • Une passphrase : Permet de sécuriser la clé privée (notons la subtilité, passphrase et pas password… donc « phrase de passe » et non pas « mot de passe »).

Le PC tourne sous Windows nous utiliserons donc Putty et le serveur sera le Raspberry-pi.

 Générer la clé privée / publique depuis Windows avec puttyGen

L’opération n’est pas compliquée il vous suffit:

  1. d’exécuter puttyGen.exe,
  2. Cliquer sur générer,
  3. Bouger la souris dans le cadre jusqu’à ce la barre d’avancement verte arrive au bout.

Maintenant vous devez avoir vos 2 fichiers de générer, vous pouvez pour assurer la sécurité mettre une passphrase. Dans notre cas je n’en mettrais pas.

Vous enregistrez le fichier de clé privée et le fichier de clé publique sur votre disque.

Vous sélectionnez le contenu « Public key for past into openSSH autorized_key file »

Mise en place de la clé publique sur le serveur

Vous devez créer le répertoire « .ssh » si il n’existe pas dans votre home:

mkdir .ssh

Créer le fichier « authorized_keys« :

nano  .ssh/authorized_keys

Coller le contenu que vous avez sélectionné l’étape précédente.

On applique les bons droits:

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Utilisation avancée de Putty

Nous allons voir comment sauvegarder les paramètres de connexion dans Putty et l’auto login.

Ouvrir Putty et :

1.   Mettre l’adresse IP du Raspberry-Pi

2.   Donner un nom à l’enregistrement

 

 

 

 

 

 

 

 

3.   Se rendre dans Connexion – Data

4.   Remplir l’auto login par votre login

 

 

 

 

 

 

 

5.  Déplier SSH  –  6. Se rendre Auth  –  7.  Faite Browse  –  8.  Sélectionner votre clé privée enregistrée auparavant  –  9. Cliquer sur Ouvrir

10.  Se rendre dans Session et cliquer sur Save

11.  Pour finir cliquer Open

 

 

 

 

 

 

 

Voilà qui est finie pour cette partie.