SSH - identifie les utilisateurs toujours connectés en utilisant des mots de passe

32

J'ai un serveur Linux Ubuntu permettant l'authentification par mot de passe pour SSH, et je souhaite le basculer uniquement sur les clés SSH et désactiver la connexion par mot de passe.

Avant de désactiver la connexion par mot de passe, comment puis-je savoir quels utilisateurs utilisent encore des mots de passe et quels sont ceux qui sont passés à l'authentification par clé?

PeterB
la source
Btw., Alors que beaucoup de gens ne le savent pas, vous pouvez également demander la clé et le mot de passe côté serveur. Un peu plus gênant, mais bien sûr plus sûr aussi, si vous faites cela ...
deviantfan
34
Désactivez la connexion par mot de passe sans préavis et voyez combien de personnes crient.
Mark
@deviantfan Il serait plus sûr d'exiger simplement un fichier de clé plus long , mais cela nécessiterait un peu de script.
jpaugh
1
@ deviantfan je comprends votre point. Mais vous supposez que le mot de passe de la clé privée est différent de celui du serveur; (alors que je suppose que le fichier de clé privée a un mot de passe, je sais.)
jpaugh

Réponses:

48

Vous ne pouvez pas le faire à 100% de manière fiable, mais il y a deux indications fortes:

  • Tout d'abord, la présence d'un .ssh/authorized_keysfichier est un indice que l'utilisateur est au moins prêt à utiliser une connexion basée sur une clé
  • Deuxièmement, dans le fichier journal d’authentification ( /var/log/securesous CentOS, /var/log/auth.logsur Debian / Ubuntu), la méthode auth sera consignée:

    Sep 28 13:44:28 hostname sshd[12084]: Accepted publickey for sven
    

    contre

    Sep 28 13:47:36 hostname sshd[12698]: Accepted password for sven
    

    Parcourez le journal à la recherche d'entrées avec le mot de passe mentionné pour savoir qui utilise encore des mots de passe. Cela ne fonctionnera pas avec les utilisateurs qui se connectent rarement bien sûr, sauf si vous avez une très longue conservation des journaux.

Sven
la source
Par 'Analyser' le fichier journal, je suppose que vous entendez des options judicieuses telles que l’utilisation de grep? grep 'password' /var/log/ssh/sshd.log
djsmiley2k - CoW
8
@ djsmiley2k: Oui, exactement. Ou quelle que soit la méthode que vous préférez pour cette tâche.
Sven
La première méthode n'est-elle pas contrecarrée par des pratiques de sécurité appropriées, telles que des 700autorisations sur le .sshrépertoire de l'utilisateur et le squash racine sur des répertoires de base montés?
Ogre Psalm33
1
@ OgrePsalm33: Vous pouvez faire cette recherche sur le serveur NFS ...
Sven
1
@R ..: Vous pouvez sécuriser NFS de manière raisonnable avec NFSv4 et Kerberos (auquel cas la connexion par clé devient compliquée). Autre que cela: Oui, la connexion basée sur une clé fonctionne sans problème lorsque ~/.sshest défini sur 700et dans les répertoires de base NFS écrasés dans la racine authorized_keys.
Sven
19

Le moyen le plus rapide est de le désactiver et de voir qui frappe à la porte de votre bureau; p

pete
la source
6
Ce n'est pas le moyen le plus rapide, car tous les utilisateurs ne peuvent pas se connecter tous les jours, alors que les journaux peuvent clairement indiquer quand une personne est connectée, ils donnent donc un résultat instantané
Ferrybig
3
C'est le moyen le plus lent. Les utilisateurs ne se connectent au serveur que si leur application est en panne. Cela pourrait prendre des années pour que cela se produise.
Navin
@pete tu es le top :)
c4f4t0r