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

