Configuration de SSH et mise en place de clés privées – publiques sur un raspberry-pi

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:

 

Les commandes utiles :

Pour lancer le service:

 Pour arrêter le service:

 Pour  relancer le service:

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:

 

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:

Si vous en voulez un peu plus:

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

Ou faite un:

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 :

01 -SSH - cle privee - publique

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.

03 - SSH - puttyGen - Generate

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.

04 - SSH - puttyGen - cle Generees

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

10 -SSH - enregistrement des fichiers

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

05 - SSH - puttyGen - selection cle publique

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:

Créer le fichier « authorized_keys« :

06 - SSH - puttyGen - creation du fichier authorized_keys

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

07 - SSH - puttyGen - mise en place de la cle publique

On applique les bons droits:

09 -SSH - on check les droits

Utilisation avancée de Putty

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

Ouvrir Putty et :

11 -SSH - configuration putty

1.   Mettre l’adresse IP du Raspberry-Pi

2.   Donner un nom à l’enregistrement

 

 

 

 

 

 

 

 

12 -SSH - configuration putty - data - auto login3.   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

13 -SSH - configuration putty - SSH - Auth - cle privee

14 -SSH - configuration putty - Save - Open10.  Se rendre dans Session et cliquer sur Save

11.  Pour finir cliquer Open

 

 

 

 

 

 

 

Voilà qui est finie pour cette partie.

0 réponse sur “Configuration de SSH et mise en place de clés privées – publiques sur un raspberry-pi”

  1. Bonjour, j’ai ce message d’erreur lorsque je lance la commande « chmod 600 ~/.ssh/authorized_keys »

    root@raspberrypi:/home/pi# chmod 600 ~/.ssh/authorized_keys
    chmod: cannot access ‘/root/.ssh/authorized_keys’: No such file or directory

    J’ai besoin d’aide s’il vous plait

    1. Bonjour, le fichier ne doit pas être crée.
      Je n’utilises pas le root dans mon exemple, mais l’utilisateur pi, tu as du louper une étape 🙂

  2. bonsoir,
    et merci pour ce tuto. Je regarderais le reste de ton blog une fois le tuto fini et fonctionnel 🙂

    tout fonctionne comme il faut mais j’ai une petite question:
    A la toute fin, lorsque je veux ouvrir ma session possédant les clefs j’obtiens un message « Server refused our key ». et je dois donner le mot de passe de mon utilisateur.
    Est-ce que c’est normal? Car dans putty j’ai l’option « display pre-autehtication banner » de cocher.
    Ou alors j’ai fait de la merde avec les clefs.

    Ps: Pourquoi ne pas avoir mis de passphrase, cela réduit la sécurité non?

    1. Salut munanui,
      si tu dois saisir le user et le mdp c’est les clés ne fonctionnent pas.
      Tu as bien la clé publique dans le répertoire .ssh de ton user et que c’est bien celle que tu as généré avec putty ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *