ssh_key.md 5.22 KB
Newer Older
LUCAS VINCENT's avatar
LUCAS VINCENT committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Title: Documentation sur les clefs ssh publique et privée
Date: 2019-02-13
category: hpc
Slug: ssh_key
Authors: David Brusson, Michel Ringenbach, Vincent Lucas

## 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
```bash
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
50
51
* à 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"
LUCAS VINCENT's avatar
LUCAS VINCENT committed
52
53
54
55
56
57
58

### 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 
59
taille 4096.
LUCAS VINCENT's avatar
LUCAS VINCENT committed
60
61
62
63

* La clef publique à installer sur le cluster se trouve dans champ 
suivant :

64
	"*Public key for pasting into OpenSSH authorized_keys file*".
LUCAS VINCENT's avatar
LUCAS VINCENT committed
65
66
67

* Il suffit de la récupérer par copier/coller.

68
69
70
71
* Pour les utilisateurs de X2Go, il faut convertir la clé privée **.ppk** avec l'outil de conversion intégré à PuTTYgen :
	- Cliquer sur "Conversions"
	- Export OpenSSH key
	- Enregistrer la clé sous un autre nom (par exemple x2gokey). Vous pourrez ainsi avoir la même clé pour PuTTY et X2Go
LUCAS VINCENT's avatar
LUCAS VINCENT committed
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

## 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 :
```bash
       ssh-agent > a; sh ./a
```
* Enregistrement de la passphrase (pour la durée de vie de votre session sur le poste de travail) :
```bash
       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 :
```bash
    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.