LinuxÉdu-Québec

Accueil À propos de nous Contact Plan du site
Accueil du site > Applications > Administration système > SSH, clé publique, clé privée, ...

Le lundi 10 mars 2003, par Benoit St-André

SSH, clé publique, clé privée, ...

SSH (Secure Shell) est un protocole encrypté d’accès distant aux machines. Il permet de se connecter facilement et sécuritairement à une machine distante. Voici quelques trucs par rapport à son utilisation avec des clés publiques, clés privées

L’utilité du système clé publique/clé privée est d’éviter l’entrée du mot de passe pour l’utilisateur. C’est un système plus sécuritaire que celui du mot de passe car il nécessite la possession de la clé privée qui correspond à la clé publique. C’est ce qu’on appelle de la cryptographie asymétrique.

Pour communiquer avec un serveur et s’y identifier avec une clé publique/clé privée, voici quelques éléments et trucs simples...


Pour créer sa paire clé publique/clé privée

 Commande :ssh-keygen -t dsa

 Explications : On vous demandera quel nom donner à votre clé (juste à taper retour, la paire de clé va s’enregistrer dans votre répertoire .ssh situé dans votre home). Ensuite, on vous demandera de taper une passphrase. Cette passphrase servira de porte d’accès à la clé publique. On peut ne pas en taper, cependant, cela revient à faire entièrement confiance au système de privilèges de linux. Ce passphrase sera demandé lorsque l’on veut s’authentifier avec le système clé publique-clé privée (on peut aussi avec la commande ssh-add ajouter la clé et son passphrase pour éviter cela plus tard).

Vous retrouverez donc la clé publique id_dsa.pub ainsi que votre clé privée id_dsa dans votre dossier .ssh . SSH fait des vérifications des privilèges de ces clés, id_dsa (la clé privée) ne doit être accessible qu’en lecture et seulement à vous (sinon, ça ne fonctionnera pas)

On aurait aussi pu faire la commande ssh-keygen -t rsa pour générer des clés de type RSA , mais l’algorithme RSA est toujours sous instance de brevet [1], DSA est totalement libre


Pour se connecter via ssh à une autre machine

 Commande : ssh -C utilisateur@lenomdelamachine

 Explications : L’utilisation du -C permet de compresser la transmission en plus de la crypter, ce qui permet d’éviter par exemple qu’un sniffer devine la longueur du mot de passe. Si votre clé publique a été placée au bon endroit sur le serveur (voir plus bas), on ne vous demandera pas de mot de passe. Autrement, après avoir entré votre mot de passe, vous vous retrouverez connecté sur la machine. Si les facilités de X11 forwarding sont fonctionnelles et que vous disposez d’un serveur X (ce qui est automatique en linux, qui est faisable en macOSX avec X11, windows.... euh :-\), vous pouvez même démarrer une application graphique SUR le serveur mais qui sera affichée sur VOTRE poste. Évidemment, cela nécessite un lien à haute vitesse entre vous et le serveur.


Pour se connecter à une autre machine avec sa clé publique

 Commandes : Placer votre clé publique (le contenu du fichier id_dsa.pub sur le serveur distant, dans le répertoire .ssh du compte sur lequel vous désirez vous connecter, dans un fichier nommé authorized_keys.

 Explications : Cela va fonctionner dans la plupart des cas, ça nécessite cependant que le serveur ssh sur la machine distante permette l’utilisation de l’identification par clé. Il faut que le fichier sshd_config (situé dans le dossier /etc) contienne les ligne suivantes (qui sont commentées parfois)

PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys

Notes

[1] ... OpenSSH supporte aussi le protocole SSH 2.0. Ce protocole évite d’utiliser l’algorithme RSA — puisqu’au moment de l’invention du protocole 2.0, le brevet RSA était encore d’actualité — et emploie, au lieu de cela, les algorithmes libres d’utilisation DH et DSA, ref : http://www.openssh.com/fr/features.html

2 Messages de forum

  • 13 avril 2006 12:39
    merci pour les différentes info
  • 13 avril 2006 21:04

    Par contre si vous voulez donner du support à distance, par exemple, et exporter l’affichage grâce à ssh, le système de clé est moins adapté parce que l’adresse du serveur est dynamique, elle change à chaque connexion. Voici comment je m’y prend pour dépanner quelqu’un à distance.

    Pré-requis :

    openssh-server (chez qui je me connecte)

    x11vnc (chez qui je me connecte)

    vncviewer (chez moi)

    RÉALISATION

    1° Demander par téléphone ou par courriel l’adresse ip de l’ordinateur distant : L’interlocuteur ouvre un terminal et tape ifconfig ppp0

    ppp0 Lien encap:Protocole Point-à-Point

    inet adr :67.68.126.234 P-t-P:64.230.197.133 Masque:255.255.255.255

    L’adresse internet suit les mots inet adr : [la série de 4 chiffres séparés par des points]

    2° Se connecter à l’ordinateur distant

    Ouvrir un terminal

    ssh -X -C usager@adresse par exemple : denise@67.68.126.234 où usager est le nom du compte où on se branche et adresse la série de 4 chiffres donner le mot de passe de l’usager pour établir la connexion

    3° Lancer le serveur x11vnc dans le tunnel ssh

    x11vnc -display :0

    des messages vont apparaître dont un signalant qu’il n’y a pas de mot de passe, ce n’est pas grave, votre connexion est chiffrée dans un tunnel ssh

    4° Notez bien le numéro de l’écran à l’avant-dernière ligne :

    04/12/2005 12:29:22 The VNC desktop is guyordi :0

    PORT=5900

    5° Ouvrez un nouvel onglet dans votre terminal (ou un second terminal) vncviewer adresse:numéro de l’écran [ex : vncviewer 67.68.126.234:0] donnez le mot de passe

    REMARQUES

    x11vnc va ajuster automatiquement les couleurs en fonction de la vitesse de votre connexion. Par exemple, avec Sympatico Haute Vitesse intermédiaire, il bascule à 8bpp ou 256 couleurs et ça demeure très utilisable à l’écran avec une vitesse fort acceptable. Les deux usagers ont accès à la souris et au clavier.

    Pour quitter, on ferme la fenêtre de x11vnc et on se délogue de la session ssh.

    Bon dépannage !

    Raymond


Applications | LinuxÉdu-Québec | Revue de presse | Projets | Événements - colloques | Réflexion et opinion | Système d’exploitation