|
|
9.4.5 Authentification de
l’utilisateur par clef publique *
- L’authentification du client par SSH peut se faire de
deux façons:
- Par mot de passe (utilisé par défaut), malheureusement
« assez facilement » déchiffrable malgré le chiffrement à clef
secrète;
- Par chiffrement à clef publique, méthode plus sûre.
- Pour mettre en place un chiffrement à clef publique,
l’utilisateur doit placer la clef publique
correspondant à son compte local sur le compte
distant. Pour cela, il doit:
- Si elle n’existe pas, générer
une paire de clefs, clef publique et clef privée avec la commande
suivante générant par défaut des fichiers contenant la clef privée et la clef
publique correspondant au compte local de l’utilisateur:
- Copier sa clé publique sur son
compte distant dans le fichier ~/.ssh/authorized_keys.
- Pour encore plus de sécurité, la clef privée de
l’utilisateur peut être protégée par une phrase
d’authentification.
- SSH offre, en outre, la possibilité d’exécuter un
agent SSH fournissant un service
d’authentification aux clients SSH.
previous next
Commentaires de cette page
dans le polycopié de cours
L’illustration interactive en mode graphique qui suit présente un
scénario de mise en place d’une authentification par clef publique.
« Authentification par clef
publique »
Mise en place d’une
authentification par clef publique. L’objectif de cet
exercice est de pouvoir vous connecter au serveur de connexions SSH de Télécom
SudParis sans mot de passe ni phrase d’authentification.
Cet objectif sera atteint en deux temps:
- tout d’abord, mise en place d’une connexion
sans mot de passe mais avec phrase d’authentification: voir les étapes
suivantes;
- enfin utilisation d’un agent SSH pour ne plus avoir à
saisir la phrase d’authentification: étapes 6 et 7. Ceci sera fait à la
page de cours suivante.
Le serveur de connexions SSH administré par Télécom SudParis
se nomme ssh. Dans le scénario suivant, vous
êtes connecté sur votre machine personnelle et souhaitez vous connecter sans
mot de passe au serveur de connexions ssh. Ce
scénario fonctionne aussi si vous êtes connectés sur une des machines des
salles TP.
- Cette manipulation a pu être déjà
partiellement ou entièrement faite par vos soins. Aussi, commencez par effacer
ou renommer votre répertoire ~/.ssh.
- Première connexion : connectez-vous
sur la machine ssh.int-evry.fr en tapant la
commande ssh -v utilisateur@ssh.int-evry.fr. Il
faut bien sûr remplacer utilisateur par votre
nom d’utilisateur UNIX. L’option -v
permet de voir les négociations entre le client SSH (s’exécutant sur
votre machine de départ) et le serveur SSH (sur ssh.int-evry.fr). Vous pouvez remarquer que le protocole
commence par authentifier les machines de départ et d’arrivée avant
l’authentification de l’utilisateur. Comme vous avez effacé le
répertoire ~/.ssh, la partie cliente du
protocole SSH rencontre pour la première fois l’identification de la
machine ssh.int-evry.fr et vous demande si vous
voulez ajouter cette machine dans la liste des machines connues, répondez
yes. Déconnectez-vous en tapant exit. Dans votre répertoire de connexion, le répertoire
.ssh a dû être créé, contenant le fichier
known_hosts.
- Création des clés : sur votre machine
personnelle, constituez-vous une paire de clés (privée et publique) de type
rsa protégée par une phrase
d’authentification en tapant la commande ssh-keygen -t rsa.
- Mise en place de la clé publique sur
le serveur de connexions: copiez la clé publique .ssh/id_rsa.pub se trouvant sur votre machine personnelle à
la fin du fichier ~/.ssh/authorized_keys se
trouvant sur le serveur de connexion. Pour cela, 3 étapes:
- Transfert du fichier id_rsa.pub sur le serveur de connexion: scp .ssh/id_rsa.pub utilisateur@ssh.int-evry.fr:.
- Sur le serveur de connexion, copie du
fichier id_rsa.pub, transféré précédemment, à
la fin du fichier .ssh/authorized_keys:
ssh utilisateur@ssh.int-evry.fr cat
id_rsa.pub » .ssh/authorized_keys
- Sur le serveur de connexion,
suppression du fichier id_rsa.pub transféré
précédemment: ssh utilisateur@ssh.int-evry.fr rm
id_rsa.pub
Note: Si vous êtes connectés sur une machine de salle de
TP, lisez la suite attentivement. Votre espace disque est le même sur toutes
les machines des salles de TP et sur les serveurs de calcul de Télécom
SudParis. La conséquence est que le client SSH et le serveur SSH utilisent le
même répertoire ~/.ssh. Donc pour copier le
fichier id_rsa.pub à la fin du fichier
.ssh/authorized_keys, il vous suffit de taper
la commande: cat .ssh/id_rsa.pub » .ssh/authorized_keys sans transfert préalable. Remarque:
les commandes données précédemment fonctionnent aussi.
Note 2: Si le répertoire .ssh n’existe pas sur le serveur de connexions,
créez-le avec les droits lecture/écriture/exécution pour vous seul:
rwx−−−−−−
- Connexion avec échange de clés (sans
mot de passe): reconnectez-vous avec la même commande sur le serveur de
connexions ssh -v utilisateur@ssh.int-evry.fr.
Vous constatez que dans la négociation l’authentification a lieu à partir
des clés publique et privée au lieu d’aller jusqu’à la présentation
du mot de passe. Il vous est alors demandé de donner la phrase
d’authentification pour décoder votre clé privée. La phrase
d’authentification protège votre clé privée et sert au client SSH pour
accéder à la clé privée. Ainsi la phrase d’authentification n’est
pas transmise sur le réseau ni le mot de passe.
INF, Télécom SudParis, CSC 3001,
Sept. 2014
|
|