GNU/Linux >> Tutoriels Linux >  >> Linux

Comment savoir si un utilisateur utilise une authentification SSH basée sur un mot de passe ou une clé sous Linux

Imaginez ce scénario. Vous venez de configurer l'authentification basée sur une clé SSH dans votre serveur Linux. Et puis, vous avez décidé de désactiver complètement l'authentification par mot de passe et d'autoriser uniquement l'authentification par clé à tous les utilisateurs. Avant de désactiver l'authentification par mot de passe, vous souhaitez vérifier quels utilisateurs utilisent encore des mots de passe pour accéder au serveur via SSH. Comment vas-tu faire ça ? Eh bien, c'est possible ! Ce bref guide explique comment déterminer si un utilisateur utilise une authentification SSH basée sur un mot de passe ou une clé sous Linux.

Savoir si un utilisateur utilise une authentification SSH basée sur un mot de passe ou une clé

Nous pouvons identifier si un utilisateur est connecté à un serveur Linux via SSH à l'aide d'un mot de passe ou d'une clé ssh. Ce n'est pas un moyen fiable et garanti à 100 %, mais c'est quand même une bonne approche.

Tout d'abord, vérifiez si le ~/.ssh/authorized_keys le fichier existe. Parce que, dans la méthode d'authentification basée sur la clé SSH, la clé publique SSH doit être téléchargée sur les systèmes auxquels vous souhaitez accéder via SSH. Les clés publiques seront généralement stockées dans un fichier appelé ~/.ssh/authorized_keys dans les systèmes distants. Si ce fichier existe, il y a des chances que l'utilisateur utilise probablement l'authentification basée sur une clé.

Ensuite, consultez les fichiers journaux d'authentification pour vérifier quelle méthode d'authentification l'utilisateur utilise actuellement pour accéder au système distant. La méthode d'authentification est enregistrée dans "/var/log/secure" fichier sur les systèmes basés sur RPM (par exemple CentOS), "/var/log/auth.log" fichier sur les systèmes basés sur DEB (par exemple, Ubuntu).

Recherchez simplement l'entrée de mot de passe dans les fichiers journaux d'authentification à l'aide de la commande grep ou tout autre moyen que vous préférez.

$ grep 'password' /var/log/secure

Ou,

$ grep 'password' /var/log/auth.log

Exemple de résultat :

[...]
May  8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May  8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2

Avez-vous remarqué les lignes "Mot de passe accepté pour ..." dans la sortie ci-dessus ? Cela signifie que l'utilisateur accède aux systèmes distants à l'aide d'un mot de passe. Selon la sortie ci-dessus, les utilisateurs "senthil" et "sk" accèdent au système distant à l'aide de l'authentification par mot de passe ssh.

Si l'utilisateur utilise l'authentification par clé, vous verrez probablement une sortie comme ci-dessous :

May 8 10:40:56 ostechnix sshd[3405]: Accepted publickey for sk from 192.168.225.37 port 41992 ssh2

Bien sûr, c'est un peu difficile si le fichier journal est très long avec un grand nombre d'entrées. Dans ce cas, utilisez "tail" commande pour afficher un nombre particulier de fichiers journaux.

Par exemple, la commande suivante n'affichera que les 10 dernières entrées du fichier journal :

$ grep 'password' /var/log/auth.log | tail -n 10

Exemple de résultat :

May  8 10:21:49 ostechnix sshd[2135]: Accepted password for senthil from 192.168.225.37 port 41920 ssh2
May  8 10:21:57 ostechnix sshd[2222]: Accepted password for sk from 192.168.225.37 port 41922 ssh2
May  8 10:24:57 ostechnix sshd[2360]: Accepted password for senthil from 192.168.225.37 port 41924 ssh2
May  8 10:25:04 ostechnix sshd[2448]: Accepted password for sk from 192.168.225.37 port 41926 ssh2
May  8 10:29:40 ostechnix sshd[2663]: Accepted password for senthil from 192.168.225.37 port 41938 ssh2
May  8 10:29:55 ostechnix sshd[2765]: Accepted password for sk from 192.168.225.37 port 41940 ssh2
May  8 10:39:34 ostechnix sshd[3064]: Accepted password for senthil from 192.168.225.37 port 41986 ssh2
May  8 10:39:55 ostechnix sshd[3184]: Accepted password for sk from 192.168.225.37 port 41988 ssh2
May  8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May  8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2

Vous pouvez également utiliser -f drapeau pour suivre le journal pendant que vous testez.

$ grep 'password' /var/log/auth.log | tail -f -n 10

Si vous souhaitez vérifier l'intégralité du fichier journal pour trouver "mot de passe" entrées page par page, utilisez "less" commande :

$ grep 'password' /var/log/auth.log | less

Pour trouver tous les journaux liés à sshd (tentatives réussies ou infructueuses), remplacez "password" par "sshd" dans toutes les commandes ci-dessus.

$ grep 'sshd' /var/log/auth.log | tail -n 10

Autres guides liés à SSH :

  • Autoriser ou refuser l'accès SSH à un utilisateur ou à un groupe particulier sous Linux
  • Limiter le nombre de connexions SSH par utilisateur/groupe/système
  • Restreindre l'accès aux serveurs Linux à l'aide d'encapsuleurs TCP
  • Exécuter des commandes sur des systèmes Linux distants via SSH
  • Comment créer un alias SSH sous Linux
  • Comment se connecter en SSH à un répertoire particulier sous Linux
  • SSLH :partager un même port pour HTTPS et SSH
  • ScanSSH – Serveur SSH rapide et analyseur de proxy ouvert
  • Comment reprendre des fichiers partiellement transférés via SSH à l'aide de Rsync
  • Comment exécuter une commande unique sur plusieurs systèmes distants à la fois
  • DSH – Exécuter une commande Linux sur plusieurs hôtes à la fois
  • Comment empêcher la session SSH de se déconnecter sous Linux
  • Comment activer SSH sur FreeBSD

J'espère que cela vous aidera.


Linux
  1. Comment trouver des connexions SSH actives sous Linux

  2. Comment modifier, supprimer ou désactiver le mot de passe utilisateur sous Linux

  3. Comment trouver tous les utilisateurs de Sudo sous Linux

  4. Comment configurer l'authentification basée sur une clé SSH sous Linux

  5. Comment réinitialiser le mot de passe Plesk Admin en utilisant SSH dans Linux Server ?

Comment désactiver la connexion SSH à un utilisateur spécifique sous Linux

Comment changer ou définir un mot de passe utilisateur sous Linux

Comment transmettre un mot de passe à la commande SSH sous Linux

Comment effectuer une sauvegarde Linux à distance à l'aide de SSH

Comment trouver un mot de passe WiFi enregistré dans Linux Mint à l'aide d'une interface graphique ou d'un terminal

comment configurer l'authentification basée sur la clé SSH dans Linux VPS ou serveur dédié