Aller au contenu principal

SSH sans mots de passe

Comment mettre en place une connexion SSH sans mot de passe entre un client Debian et un serveur Debian.

Connexion SSH sans mot de passe entre 2 machines Debian

La connexion SSH sans mot de passe, également appelée authentification par clé publique, est une méthode sécurisée et pratique pour se connecter à distance à un serveur.

info
  • la clé privée reste uniquement sur le client
  • la clé publique est copiée sur tous les serveurs sur lesquels on souhaite se connecter sans mot de passe

Voici les étapes à suivre pour mettre en place une connexion SSH sans mot de passe entre un client Debian et un serveur Debian.

1) Générer les clés SSH sur le client

Nous allons générer une paire de clés SSH sur le client : une clé privée et une clé publique.

Sur la machine cliente, ouvrez un terminal et exécutez la commande suivante :

ssh-keygen -t rsa -b 4096

Cette commande génère une paire de clés RSA de 4096 bits.

  • Appuyez sur Entrée pour accepter l'emplacement par défaut (~/.ssh/id_rsa)
  • et laissez la passphrase vide pour une connexion sans mot de passe.

2) Copier la clé publique sur le serveur

Utilisez la commande ssh-copy-id pour copier votre clé publique sur le serveur :

ssh-copy-id utilisateur@adresse_ip_serveur

Remplacez :

  • utilisateur par votre nom d'utilisateur sur le serveur
  • et adresse_ip_serveur par l'adresse IP ou le nom d'hôte du serveur.

3) Vérifier les permissions sur le serveur

Connectez-vous au serveur et vérifiez les permissions du fichier authorized_keys :

ssh utilisateur@adresse_ip_serveur
ls -l ~/.ssh/authorized_keys

Les permissions doivent être 600 -rw-------.

Si ce n'est pas le cas, corrigez-les :

chmod 600 ~/.ssh/authorized_keys

4) Configurer SSH sur le serveur

Éditez le fichier de configuration SSH sur le serveur :

sudo nano /etc/ssh/sshd_config

Assurez-vous que les lignes suivantes sont présentes et non commentées :

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

5) Redémarrer le service SSH

Après avoir modifié la configuration, redémarrez le service SSH :

sudo systemctl restart sshd

ou

sudo service sshd restart

6) Tester la connexion

Depuis le client, testez la connexion SSH sans mot de passe :

ssh utilisateur@adresse_ip_serveur

Vous devriez maintenant pouvoir vous connecter sans entrer de mot de passe.

Sécurité supplémentaire

Pour renforcer la sécurité, vous pouvez désactiver l'authentification par mot de passe sur le serveur.

attention

Ne désactivez l'authentification par mot de passe uniquement si la connexion SSH sans mot de passe fonctionne.

Pour désactiver l'authentification par mot de passe, il suffit d'éditer le fichier /etc/ssh/sshd_config et modifier la ligne suivante :

PasswordAuthentication no
astuce

N'oubliez pas de redémarrer le service SSH après cette modification.

remarque

En suivant ces étapes, vous aurez mis en place une connexion SSH sécurisée sans mot de passe entre votre client Debian et votre serveur Debian, améliorant ainsi la sécurité et la commodité de vos connexions à distance.

Test de compréhension/mémorisation


Quelle commande permet de générer une paire de clés RSA de 4096 bits ?


Quelle commande permet de copier la clé publique sur le serveur distant ?


Quelles doivent être les permissions du fichier authorized_keys sur le serveur ?


Quelle ligne doit être présente et non commentée dans le fichier sshd_config pour autoriser l'authentification par clé publique ?


Pour désactiver l'authentification par mot de passe, quelle ligne doit-on modifier dans le fichier sshd_config ?


Quel est l'emplacement par défaut de la clé privée générée par ssh-keygen ?


Quelle commande permet de vérifier les permissions du fichier authorized_keys sur le serveur ?


Quel type d'authentification SSH est considéré comme plus sécurisé que l'authentification par mot de passe ?