Ssh:Installation parametrage:Authentification par cle

From aldeid
Jump to navigation Jump to search

Authentification par clé

Pré-requis

De nombreux sites et forums présentent encore la notation SSH1 pour le fichier des clés publiques "authorized_keys".
Dans le présent document, nous adoptons le standard SSH2. Ainsi, ce fichier sera nommé authorized_keys2.

Génération des clés

Pour la génération des clés, deux possibilités :

  • Vous avez physiquement accès à la machine distante (solution 1)
  • Vous n'avez pas physiquement accès à la machine distante (solution 2)

Ces deux solutions sont détaillées ci-dessous.

Note
Pour que la deuxième solution fonctionne, vous devez vous assurer que le mode "authentification par mot de passe" n'a pas été désactivé. Pour rappel, une machine qui autorise l'authentification par mot de passe est ouverte aux attaques par brute force.


Solution 1 : Vous avez accès à la machine distante

1. Dans une nouvelle console Cygwin, entrez la commande suivante sur le serveur :

ssh-keygen –t rsa

pour générer les clés. Puis assurez-vous que les clés sont présentes dans le répertoire .ssh (id_rsa et id_rsa.pub).

Note
Lorsque le chemin des clés vous est demandé, acceptez le chemin par défaut. Les clés seront créées dans le répertoire /home/utilisateur_connecté/.ssh.

2. Récupérez le fichier id_rsa sur la machine locale et chargez-le avec Puttygen (bouton "Load"). Entrez la passphrase lorsqu'elle vous est demandée.

3. Vous devez convertir le format de la clé avec PuTTY pour pouvoir vous connecter (bouton "Save private key").

Note
Les formats de clés sont différents avec PuTTY. Si vous souhaitez utiliser Pageant comme expliqué plus loin, vous devez convertir le format des clés avec PuTTY.
Solution 2 : Vous n'avez pas accès à la machine distante


Note
  • Cygwin doit nécessairement être installé sur la machine locale pour cette procédure. N'utilisez pas Puttygen pour générer les clés car elles sont dans un format différent et vous ne pourrez pas vous connecter. En revanche, comme nous le verrons sur Linux, Puttygen pourra être utilisé.
  • Nous supposerons que la machine distante s'appelle FAMILYCOMPUTER et que l'on possède un compte a011830.


Machine locale
(connexion directe via Cygwin)
Machine distante
(connexion distante avec PuTTY)
ssh-keygen –t rsa
cd ~/.ssh
dir
 
 
login a011830
mkdir .ssh
exit
scp id_rsa.pub [email protected]:~/.ssh/newkey
 
 
login a011830
cd ~/.ssh
cat newkey
cat newkey >> authorized_keys2
rm newkey
chmod 600 authorized_keys2
exit

Vérification de l'authentification par clé publique

Quelle que soit la solution retenue, la vérification pourra s'effectuer soit par Cygwin (à condition que la clé privée soit présente dans le répertoire /home/nom_utilisateur/.ssh de la machine locale), soit par PuTTY. Nous présentons les tests avec PuTTY car la première solution est relativement simple.

Configurez PuTTY comme suit :
1. Cliquez sur la catégorie Session
2. Renseignez les champs Host Name et Port
3. Enregistrez un nom de session pour pouvoir la recharger ultérieurement
4. Cliquez sur Save pour enregistrer les paramètres

5. Sélectionnez la catégorie Auth
6. Cochez la case "Allow agent forwarding" qui va permettre d'utiliser Pageant comme présenté à la page 13.
7. Spécifiez le chemin de la clé privée.
8. Retournez sur la catégorie Session puis cliquez sur Save (point [4]).

9. Lorsque vous vous cliquez sur "Open", une fenêtre vous demande votre identifiant puis, si tout se passe bien, la passphrase.

Modification du fichier httpd_config

La modification du fichier httpd_config ne pourra se faire que si vous avez un accès physique à la machine distante.
Après avoir vérifié que vous pouvez vous connecter avec la clé publique, vous pouvez interdire l'authentification par mot de passe pour renforcer la sécurité de la machine distante. Ainsi, seuls les utilisateurs qui possèderont une clé privée valide pourront se connecter.

Warning
Effectuez une copie du fichier httpd_config et nommez-le httpd_config.bak. Ainsi, en cas de dysfonctionnement, vous aurez toujours le fichier original.

Ouvrez le fichier httpd_config avec VIM (http://www.vim.org/download.php#pc) pour le modifier comme suit :

VariableCommentaireValeur
PermitRootLoginAutorisation de connexion en tant que rootno
PubKeyAuthenticationAutorisation de connexion avec clé publiqueyes
AuthorizedKeysFileChemin d'accès au fichier authorized_keys2.ssh/auhorized_keys2
PasswordAuthenticationAutorisation de connexion par mot de passeno


Note
Pour plus de renseignements sur les paramètres du fichier sshd_config, consultez l'adresse suivante :
http://www.delafond.org/traducmanfr/man/man5/sshd_config.5.html

Utilisation de Pageant

Qu'est-ce que Pageant?
Pageant signifie "Putty Authentication Agent". Il s'agit d'un programme qui se trouve dans le package d'installation de PuTTY et qui permet de conserver en mémoire des passphrase afin que vous n'ayiez pas à les ressaisir à chaque connexion.

Note
  • Afin de conserver une sécurité maximale, Pageant ne stocke pas les couples clé/passphrase sur le disque dur mais en mémoire directement, ce qui a pour conséquence directe une purge de son cache à chaque démarrage.
  • Il est néanmoins possible de créer une commande au démarrage afin d'appeler Pageant avec les clés, mais chaque passphrase devra être saisie manuellement :
"C:\Program Files\PuTTY\pageant.exe" "D:\SSH_KEYS\key1.ppk" "D:\SSH_KEYS\key2.ppk"

Comment se servir de Pageant?

1. Lancez Pageant () 
2. Dans les icônes en bas à droite de l'écran, double cliquez sur Pageant.
3. Puis cliquez sur "Add Key". Une boîte de dialogue vous invite à chercher la clé privée.
4. La passphrase associée à votre clé privée vous est alors demandée. Lorsque vous l'avez saisie, cliquez sur OK. Elle s'ajoute alors à la liste des clés.
5. Vous pouvez cliquer sur Close.

Remarque : Dorénavant, vous n'avez plus besoin de spécifier votre clé privée dans PuTTY. Seuls les champs HostName, port et login seront nécessaires.