Authentifications SSH
SSH est un protocole qui permet de créer des tunnels de chiffrement dans le but d’exécuter des commandes à distance ou de transférer des fichiers.
Il peut utiliser la cryptographie symétrique ou asymétrique selon les besoins.
Sous Linux (sur le serveur et sur le client) :
apt-get install ssh
Sous Windows (pas de serveur, que des clients) : Télécharger et installer Putty (commandes distances) et WinSCP (transfert de fichiers)
En cryptographie symétrique, on indique au client SSH un login et un mot de passe autorisés à se connecter, par exemple :
ssh root@192.168.0.1
password for root :
La cryptographie symétrique est très simple à utiliser mais empêche l’automatisation des connexions puisqu’il y a forcément une action non automatique au moment du mot de passe.
Pour éviter ce problème, SSH peut s’utiliser avec un système de cryptographie asymétrique. Le client doit générer une paire de clés RSA ou DSA.
La clé publique doit être ajoutée aux authorized_keys du serveur.
Génération de clé côté client :
La clé privée est à protéger. Souvent, on vous demandera un mot de passe pour les logiciels qui veulent l’utiliser. C’est fortement conseillé d’en mettre mais ça ne permet pas d’automatiser les connexions (utilisation de SSH dans un script, par exemple).
Sous Linux, un simple ssh-keygen suffira (pour peu qu’on ait installé le paquet ssh avant, quand même !).
Sous Windows, on peut s’aider de putty-gen :
- Lancer puttygen
- Générer une paire de clés.
- Copier la clé publique
Préparation du serveur :
Côté serveur, il faut :
-
copier les clés publiques dans le fichier /home/xxxxx/.ssh/authorized_keys (une ligne par client)
-
Interdire les accès par login/mot de passe dans le fichier /etc/ssh/sshd_config modifier la ligne suivante :
#PasswordAuthentication yes
par
PasswordAuthentication no
-
Redémarrer SSH : /etc/init.d/ssh restart