Préambule
Pour des raisons de sécurité, la connexion par mot de passe au cluster n'est pas autorisée. Seul est autorisé le mécanisme des clefs privée/publique, qui fonctionne sur le principe :
- d'une clef privée ne quittant jamais votre poste de travail (PC, ordinateur portable,...)
- d'une clef publique installée sous votre compte sur le serveur sur lequel vous souhaitez vous connecter (hpc-login.u-strasbg.fr dans le cas du cluster de calcul).
Une même paire de clef peut être utilisé pour se connecter à différents serveurs.
La clef publique est à transmettre par messagerie, soit sous forme pièce-jointe, soit simplement copiée dans le corps du mail.
Mise en garde
Attention: dans tous les cas lisez la première mise en garde ci-dessous :
- si vous utilisez déjà le mécanisme des clef, mais que votre clef privée n'est pas sécurisée par une passphrase, il faudra suivre la procédure ci-dessous "Sécuriser une clef privée existante avec une passphrase".
- en aucun cas il ne faut installer votre clef privée au sein du cluster. Celle-ci doit être présente uniquement sur votre poste de travail.
Une fois votre clef publique installée sur le cluster, lors d'une connexion, le système vous demandera la passphrase de la clef privée, et non pas le mot de passe sur le cluster (qui sera de toute façon bloqué). Si cela vous semble fastidieux, vous pouvez utiliser un "agent" ssh pour stocker la passphrase (le temps de la session de travail). Voir ci-dessous "Utiliser un agent pour stocker la passphrase".
Générer une paire de clefs publique et privée
Sur un poste Linux ou MacOS
cd
ssh-keygen -t rsa -b 4096
- à la question "Enter file in which to save the key", appuyez sur la touche Entrée pour le choix par défaut
- à la question "Enter passphrase", entrez un mot de passe, de préférence sous la forme d'une phrase
- La clef publique à utiliser pour le cluster se trouve dans le fichier indiqué par "Your public key has been saved in"
Sur un poste Windows
-
Utiliser l'utilitaire PuTTYgen pour générer vos clés : https://winscp.net/eng/download.php
-
Une fois PuTTYgen lancé, générer un jeu de clés de type SSH-2 RSA de taille 4096.
-
La clef publique à installer sur le cluster se trouve dans champ suivant :
"Public key for pasting into OpenSSH authorized_keys file".
-
Il suffit de la récupérer par copier/coller.
-
Pour les utilisateurs de X2Go, il faut convertir la clé privée .ppk avec l'outil de conversion intégré à PuTTYgen :
- Cliquer sur "Conversions" puis sur "Export OpenSSH key"
- Enregistrer la clé sous un autre nom (par exemple x2gokey). C'est cette nouvelle clé que vous devrez utiliser pour X2Go. Vous pourrez ainsi avoir la même clé pour PuTTY et X2Go
Utiliser un agent pour stocker la passphrase
Certains système (comme Ubuntu) gèrent cet aspect automatiquement.
Si ce n'est pas le cas, sur votre poste de travail :
- Démarrage de l'agent :
ssh-agent > a; sh ./a
- Enregistrement de la passphrase (pour la durée de vie de votre session sur le poste de travail) :
ssh-add
La séquence ci-dessus peut être automatisée via le script de démarrage de votre session.
Sécuriser une clef privée existante avec une passphrase
Cette opération protège votre clef privée en cas de vol de votre poste, ou simplement d'accès en-dehors de votre présence.
Sur votre poste de travail :
ssh-keygen -p
Répondre aux questions
Cas particulier
FileZilla
Dans certains cas, FileZilla n'est compatible qu'avec le format de clé .ppk (Putty Private Key).
Le plus simple est :
- d'aller dans le gestionnaire de site de FileZilla (Fichier > Gestionnaire de Sites),
- puis pour le site correspondant à hpc-login, choisir le type d'authentification "Fichier de clé".
- Ensuite, il faut chercher la clé privée qui devrait être .ssh/id_rsa (il faudra sans doute taper ceci à la main, FileZilla ne va pas trouver le répertoire .ssh tout seul).
- Il y aura un message qui expliquera que le format de clé n'est pas pris en charge, mais qu'il peut être converti : valider, puis nommer la nouvelle clé comme on le souhaite (par exemple id_rsa.ppk).
x2go
Cocher la case :
- Essayer l'authentification automatique (via l'agent SSH ou la clé SSH par défaut)
Si la clef n'est pas dans un emplacement standard, il faut de plus indiquer sa localisation dans le champ :
- Utiliser une clé RSA/DSA pour la connexion SSH
plusieurs postes de travail
Si vous avez plusieurs postes de travail, deux options s'offrent à vous :
Vous pouvez générer autant de paires de clef que de postes de travail, et rajouter les nouvelles clef publiques dans hpc-login:~/.ssh/autorized_keys
Ou encore n'utiliser qu'une seule paire de clef, mais dupliquer la clef privée sur tous les postes. Attention dans ce cas à ne pas faire transiter la clef privée par le réseau, mais via par exemple une clef USB et nettoyer la clef USB après transfert.
La première méthode est recommandée. Vous pouvez pour vous simplifier la vie et utiliser la même passphrase pour toutes les clef privées.