5 minutes pour configurer ssh

ssh 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 / MPI 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.

Si vous n'avez pas de configuration ssh:

     mkdir ~/.ssh


Si vous aviez déjà une configuration ssh que vous souhaitez conserver, vous pouvez la sauvegarder en faisant:

      mv ~/.ssh ~/.ssh.original

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. Ne pas mettre de passphrase pour ne pas être obligé de la saisir à chaque login.

     ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N '' -q

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 / MPI, vous appliquez cette règle à vous même en exécutant les commandes suivantes dans un shell:

     cd ~/.ssh
     cat  id_ed25519.pub  >>  authorized_keys
     echo "StrictHostKeyChecking no" >> config
     echo "ForwardX11 yes" >> config

3. Vérification

Comme votre répertoire de login est partagé entre les machines de l'école par le système de fichier distribué, 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@pc5101a % ssh pc5101b
      Last login: Wed Jan 1 10:00:00 1970 from pc5101a

      toto@pc5101b %


4. Problème du montage du répertoire HOME (~/) sous Linux

Malgré la configuration ssh précédente, le système de fichier distribué nécessite le mot de passe en clair pour accèder à vos répertoires au moment du login ("montage" du repertoire HOME ~/). Pour éviter de saisir votre mot de passer à chaque fois, vous pouvez ouvrir autant de terminaux que vous allez utiliser de machines et vous loguer sur chacune d'elle au début du TP.

Attention: de conserver tout ces terminaux ouverts pendant tout le TP. Si vous en fermez un, vous devrez taper votre mot de passe pour accéder à la machine correspondante.

Une autre alternative est d'ajouter les PCs dans la machine virtuelle PVM au début du TP et de ne pas sortir de pvm ou xpvm avec halt mais avec quit. En cas de crash des démons pvmd, il faudra tout de meme répéter le processus et taper le mot de passe à chaque ajout de machine.