Comment activer les connexions SSH sans mot de passe sous Linux

Comment activer les connexions SSH sans mot de passe sous Linux

C’est une excellente idée de se connecter à votre serveur SSH sans mot de passe. Sérieusement, débarrassez-vous en. Il n’est pas nécessaire d’utiliser un mot de passe sur l’un des services les plus attaqués sur les serveurs Linux, n’est-ce pas ? Sécuriser un serveur SSH à l’aide d’une authentification standard basée sur un mot de passe est une mauvaise idée. Les attaquants peuvent facilement forcer les mots de passe, et lorsqu’ils sont la seule chose qui se dresse entre un mauvais acteur et votre serveur, vous devriez certainement être nerveux.

C’est pourquoi l’authentification basée sur la clé RSA est bien meilleure. Vous pouvez configurer et sécuriser votre serveur Linux pour n’autoriser l’accès qu’à partir d’ordinateurs qui détiennent les clés RSA qui ont déjà été acceptées. Toute autre personne sera rejetée immédiatement. Comme avantage supplémentaire, vous pouvez créer ces clés avec ou sans mot de passe, ce qui dépend entièrement de vous. Cependant, une clé forte sans mot de passe convient dans la plupart des cas.

Si vous utilisez également des appareils Linux à la maison, vous bénéficiez également de la commodité. Supposons que vous souhaitiez configurer le transfert X SSH de votre poste de travail Linux vers votre ordinateur portable. Voulez-vous vraiment saisir votre mot de passe à chaque fois que vous lancez un programme distant ? Configurez des clés SSH et vous n’en aurez pas besoin.

Installer les packages

Il y a quelques packages dont vous avez besoin. Vous en avez probablement déjà quelques-uns, mais c’est une bonne idée de vérifier. Les packages sont les mêmes sur le serveur et le client. Cependant, il y a aussi de fortes chances que les deux machines soient des serveurs et des clients l’une pour l’autre (situation domestique), vous pouvez donc vous assurer que vous avez installé ces packages.

Le métapaquet OpenSSH n’est pas installé par défaut sur les systèmes Debian ou Ubuntu. Si vous ne l’avez pas déjà installé, vous pouvez le faire en exécutant la commande suivante :

sudo apt install ssh

Ssh Passwordless Linux 02 Installation d'Openssh

Générez votre clé SSH sous Linux

Il est très facile de générer votre clé SSH sous Linux. Dites simplement à OpenSSH que vous devez générer la clé. C’est aussi une bonne idée de spécifier le nombre de bits avec le -bdrapeau et le type avec -t. Une clé de 4096 bits est préférable, car elle fournit un cryptage plus fort.

ssh-keygen -t ed25519

Tout d’abord, l’utilitaire vous demandera où vous souhaitez stocker la clé. Appuyez simplement sur Enterpour le répertoire par défaut. Lorsqu’il demande un mot de passe, laissez-le vide pour une clé sans mot de passe et une authentification sans mot de passe. Si vous souhaitez utiliser un mot de passe pour votre clé, entrez-le ici.

Votre ordinateur prendra quelques secondes pour générer votre clé. Une fois terminé, il imprimera une représentation artistique ASCII de votre clé sur le terminal.

Envoi de votre clé à l’hôte Linux distant

Pour utiliser votre clé, vous devrez l’envoyer à votre serveur distant. OpenSSH a également un autre utilitaire intégré pour cela. Dites-lui où se trouve votre clé et à quel utilisateur du serveur l’associer.

ssh-copy-id -i ~/.ssh/id_ed25519.pub username@ip_remote_host

Remplacez ip_remote_hostpar l’adresse IP réelle de l’hôte distant, que vous gérerez via SSH. Remplacez usernamepar le nom d’utilisateur réel sur l’hôte distant.

Identifiant de copie Ssh Linux 04 sans mot de passe Ssh

Il est crucial que vous utilisiez l’ -ioption pour spécifier le fichier d’identité qui contient votre clé publique. Si vous essayez d’utiliser votre clé SSH sans cette option, vous risquez d’obtenir une erreur.

Ssh Passwordless Linux 05 Copie réussie

Test de votre connexion SSH sous Linux

Avec votre clé SSH dans le serveur distant, vous pouvez maintenant tester si votre connexion fonctionne correctement.

Connectez-vous avec la commande suivante :

ssh username@ip_remote_host

L’hôte distant vous connectera sans demander le mot de passe du compte utilisateur.

Ssh sans mot de passe Linux 06 Connexion sans mot de passe

Cependant, si vous avez fait une erreur au cours du processus, le démon SSH reviendra automatiquement à l’authentification par mot de passe pour votre compte utilisateur. Cela vous permet de continuer à accéder à votre serveur distant même si vous avez une clé RSA qui ne fonctionne pas.

Ssh Passwordless Linux 07 Échec de la connexion

Configuration de SSH pour bloquer les mots de passe

Pour une sécurité optimale, vous devez désactiver les connexions par mot de passe SSH sur votre serveur Linux. Semblable à l’activation de l’authentification à deux facteurs dans SSH, cela empêche quiconque de se frayer un chemin dans votre serveur.

Ssh Passwordless Linux 08 Exemple à deux facteurs

Il est important de vous assurer que vous pouvez vous connecter de manière fiable avec votre clé SSH avant de le faire, car il est possible de vous verrouiller hors de votre serveur distant si vous avez une clé défectueuse.

Vous pouvez trouver le fichier de configuration de votre démon SSH dans « /etc/ssh/sshd_config ». Ouvrez le fichier sur le serveur à l’aide de sudo et de votre éditeur de texte préféré. Par exemple, ouvrez ce fichier à l’aide de nano en exécutant la commande suivante :

sudo nano /etc/ssh/sshd_config

Trouvez les lignes ci-dessous en appuyant sur Ctrl+ Wet modifiez-les pour qu’elles ressemblent à l’exemple. Décommentez les deux entrées et remplacez les valeurs par no.

PasswordAuthentication no
PermitEmptyPasswords no

Ssh Passwordless Linux 09 Rechercher l'option Nano

PasswordAuthenticationspécifie s’il faut utiliser l’authentification par mot de passe. Nous définissons ceci sur « non » car nous voulons utiliser uniquement les clés SSH.

PermitEmptyPasswordsspécifie si le serveur autorise la connexion avec un mot de passe vide. Vous ne devriez jamais autoriser cela, nous l’avons donc défini sur « non ».

Ssh Passwordless Linux 10 Mettre à jour les paramètres Sshd

Ensuite, trouvez la ligne « UsePAM » et changez-la en « non ». Cela empêchera le démon d’utiliser des méthodes d’authentification (mot de passe, Kerberos, etc.) autres que les clés SSH.

UsePAM no

Ssh Passwordless Linux 11 Désactiver le support Pam

Enregistrez le fichier en appuyant sur Ctrl+ O, puis Ctrl+ Xet rechargez le serveur SSH.

sudo systemctl restart ssh

Maintenant que vous avez configuré avec succès votre serveur pour utiliser uniquement les clés SSH pour l’authentification, toute personne essayant de se connecter sans clé RSA valide sera immédiatement refusée.

Ssh sans mot de passe Linux 12 sans clé de connexion

Questions fréquemment posées

Je reçois un « Connexion refusée » lorsque j’envoie ma clé SSH à mon serveur Linux. Comment puis-je réparer ça?

Assurez-vous que le serveur SSH est en cours d’exécution sur l’hôte distant. Vous pouvez le vérifier en exécutant sudo systemctl status ssh. Si le service n’est pas en cours d’exécution, vous pouvez le démarrer avec cette commande : sudo systemctl start ssh.

Si un pare-feu est en cours d’exécution sur le serveur, assurez-vous que le port 22 est ouvert. Vous pouvez le faire en exécutant sudo ufw status. Si SSH n’est pas répertorié, vous pouvez l’activer en exécutant cette commande : sudo ufw allow ssh.

J’obtiens une erreur « Autorisation refusée (clé publique) » lorsque j’essaie de me connecter. Que dois-je faire ?

Cette erreur signifie que vous avez configuré votre serveur pour utiliser des clés pour l’authentification, mais que vous essayez toujours de vous connecter avec un mot de passe. Cela peut être dû à une clé RSA manquante ou à un paramètre SSH incorrect. Vérifiez que vous avez correctement copié votre clé publique sur le serveur et que vous spécifiez la bonne clé publique lorsque vous vous connectez.

J’obtiens une erreur « Échec de la vérification de la clé de l’hôte » lorsque j’essaie de me connecter. Comment puis-je réparer ça?

Cette erreur signifie que la clé d’hôte du serveur SSH a changé. Cela peut arriver si le serveur a été réinstallé. Vous pouvez régénérer une nouvelle clé publique et la copier sur l’hôte distant. Répétez les étapes de cet article pour régénérer et ajouter la nouvelle clé au serveur.

Est-il possible d’utiliser plusieurs clés SSH sur le même serveur Linux distant ?

Oui. Vous pouvez utiliser l’ -foption dans OpenSSH pour spécifier la clé exacte que vous souhaitez utiliser pour vous connecter à un serveur distant. Par exemple, l’exécution ssh -f ~/.ssh/id_rsa_2 username@remote_ip_addressvous connectera à votre serveur distant à l’aide de la clé « id_rsa_2 » au lieu de la clé par défaut « id_rsa ».

Cependant, il est important de noter que cette commande ne fonctionnera que si votre serveur distant reconnaît déjà votre nouvelle clé. Vous devez d’abord le copier sur votre serveur distant en utilisant ssh-copy-id. Semblable aux étapes ci-dessus, vous pouvez le faire via une authentification par mot de passe ou par clé RSA.

J’obtiens une erreur « Autorisation refusée » chaque fois que j’essaie de copier ma clé SSH sur mon serveur.

Ce problème est probablement dû à un problème d’autorisations sur votre serveur distant. Dans la plupart des cas, l’ ssh-copy-idutilitaire devrait résoudre correctement tous les problèmes d’accès dès qu’il se connecte à votre serveur distant. Cependant, il existe des cas où cette fonctionnalité s’interrompt et ne parvient pas à copier correctement le « id_rsa » de votre machine locale.

Pour résoudre ce problème, connectez-vous à votre serveur distant et exécutez chmod 700 /home/$USER/.ssh/* && chmod 600 /home/$USER/.ssh. Cela définira les bits d’autorisation corrects pour le dossier « .ssh » et son contenu.

Crédit image : Unsplash . Toutes les modifications et captures d’écran par Ramces Red.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *