5 minutes pour configurer ssh
ssh est un remplaçant des r-commandes (rsh, rlogin, rexec,
telnet...) qui
permet de lancer un processus ou de se loguer interactivement sur une
machine
distante. L'intérêt de ssh réside dans le fait que
le protocole de connexion
est sécurisé par des algorithmes cryptographiques qui
garantissent la confidentialité
et l'intégrité des données échangées
et authentifie l'utilisateur ainsi que
les machines.
L'objectif de ce guide est d'expliquer comment configurer rapidement
ssh
pour pouvoir l'utiliser pour faire du PVM sans être obligé
de saisir son
mot de passe à chaque login distant.
Attention: cette configuration simplifié
correspond
à ce cas particulier d'utilisation au prix de quelques
économies de sécurité,
elle pourrai donc ne pas convenir dans un environnement dans lequel une
sécurité
forte est souhaitée.
1. Génération des clés privée et publique
Pour vous authentifier, ssh utilise une paire de clés qu'il faut
générer en exécutant la commande suivante dans un
shell:
ssh-keygen -t
dsa
ssh-keygen
-t rsa
Si vous devez vous connecter à un serveur qui ne supporte
QUE le protocole
SSHv1 (à éviter car moins sécurisé) vous
devez également générer les clés pour
ce protocole:
ssh-keygen -t
rsa1
Ne pas mettre de passphrase pour ne pas être obligé
de la saisir à
chaque login. Cette passphrase sert à chiffrer votre clé
privée. Sans
chiffrage, votre clé pourrait être utilisée par
quelqu'un qui aurait accès
au système de fichiers et à l'arborescence de votre
compte. Mais le chiffrage
vous contraint à saisir votre passphrase à chaque
accès à votre clé privée
(c'est à dire chaque fois que vous vous logez)
2. Autorisation de login distant
Pour autoriser un utilisateur à se loguer via ssh sur votre
compte sans saisie de mot de passe, il suffit
de mettre sa clé publique dans le fichier ~/.ssh/authorized_keys Dans le
cadre de l'application à PVM, vous appliquez cette règle
à vous même en exécutant les commandes suivantes
dans un shell:
cd ~/.ssh
cat
id_dsa.pub >>
authorized_keys
cat
id_rsa.pub >>
authorized_keys
3. Vérification
Comme votre répertoire de login est partagé par NFS,
votre clé publique fait partie de celles autorisées et
vous devez pouvoir vous loguer d'une machine vers une autre
sans avoir à saisir votre mot de passe. Validez le bon fonctionnement
en exécutant la commande suivante dans un shell:
toto@info20 %
ssh info21
Last
login: Wed Jan 1 10:00:00 1970 from info21
toto@info21
%
4. Configuration supplémentaire
Pour authentifier les machines, chaque machine sur laquelle ssh a
été configuré
possède une clé publique qui a été
créée de façon similaire à la votre (cf.
Par. 1) mais par root. Chaque fois que vous vous loguer sur une machine
distante,
ssh enregistre sa clé publique dans le fichier ~/.ssh/known_hosts Ceci permet
d'authentifier
à posteriori la machine distante et d'éviter une attaque du type
"Men in the middle" et/ou
IP spoofing. Lorsque vous êtes amené à vous loguer
de nombreuses fois ceci
peut être pénible. Pour que ssh rajoute automatiquement
les clés des nouvelles
machines dans ce fichier sans vous demander confirmation à
chaque fois, modifiez votre fichier de configuration local en
exécutant les commandes suivantes dans un shell:
cd ~/.ssh
echo
"StrictHostKeyChecking
no" >> config
ssh ne détectera plus les attaques du type "men in the
middle" ou
IP spoofing, mais vous n'aurez plus à taper une confirmation
à chaque fois
que vous vous loguer sur une nouvelle machine.