Authentification SSH avec clés
Attention
Cet article a été publié il y a plus d'un an, il peut y avoir des développements été.
S'il vous plaît prendre en compte.
Le protocole SSH (Enveloppe de protection) est un protocole crypté utilisé pour établir des connexions sécurisées entre deux machines: client e server. En soi, c'est déjà un protocole assez sécurisé, mais avec les clés SSH, vous ne pouvez fermer l'accès SSH qu'à des machines spécifiques. Voici comment faire.
Dans ce mini-guide nous allons voir comment mettre en place un accès SSH à une machine “serveur” en s'authentifiant sans mot de passe. Avec cette configuration, seuls ceux qui ont les bonnes clés SSH pourront accéder au serveur. Dans cet exemple, nous utiliserons les adresses IP suivantes:
- Client: 192.168.5.114
- Serveur: 192.168.5.10
L'une des exigences fondamentales est que l'utilisateur qui génère la clé SSH ait un compte activé et appartienne au groupe sudoers
sur les deux machines.
Générer la clé sur le serveur
Nous générons d'abord la clé SSH sur le serveur. Connectez-vous au serveur (soit directement, soit via SSH traditionnel) et exécutez cette commande.
~$ ssh-keygen -t rsa
Pendant la création de la clé, nous aurons la possibilité d'associer ou non un mot de passe. Je recommande d'associer le mot de passe à moins qu'il n'y ait des obstacles particuliers tels que devoir désactiver le mot de passe lors de la connexion. Dans tous les cas, nous aurons deux possibilités à la fois sûres.
Copiez la clé sur le client
Une fois la commande terminée, nous devrons en lancer une autre pour copier la clé générée sur le client.
~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub USER@192.168.5.114
USER
est l'utilisateur enregistré sur le client que nous utiliserons pour nous connecter au serveur.
Je suppose que ces opérations sont effectuées dans un réseau local, mais si ce n'est pas le cas, il faut trouver un moyen de copier la clé générée dans ~/.ssh/id_rsa.pub
dans le client utilisé via par exemple un partage FTP, un e-mail ou même un trou de ver.
Testez la connexion
A terme il sera temps de tester le fonctionnement réel. Nous retournons au client et lançons la commande:
~$ ssh -v USER@192.168.5.10
USER
est l'utilisateur qui écoute sur le serveur.
Si nous avons configuré la clé SSH sans mot de passe, nous serons immédiatement connectés au serveur, au contraire si nous avons mis un mot de passe à la clé, ce sera nécessaire maintenant.
Désactiver l'authentification par mot de passe utilisateur
Si nous nous sommes connectés avec succès au serveur, nous voudrons peut-être configurer l'accès pour ne pas accepter les connexions via le mot de passe de l'utilisateur. Ouvrez le fichier /etc/ssh/sshd_config
avec un éditeur et ajoutez une ligne au bas du fichier comme suit:
PasswordAuthentication no
Nous redémarrons le service SSH:
~$ sudo service ssh restart
Maintenant, si nous essayons de nous reconnecter au serveur, nous ne pourrons pas le faire sans la clé SSH générée. Une fois que nous sommes sûrs que tout fonctionne correctement, nous pouvons partager la clé (en utilisant la commande ssh-copy-id
dal serveur) avec les utilisateurs auxquels nous voulons accorder l'accès.
Si le seul moyen d'accéder au serveur est via SSH, attention à ne pas perdre les clés, ou nous ne pourrons pas entrer dans la voiture.
0 commentaires