essayez de verrouiller le mot de passe mais pas d'input dans / etc / shadow

Objectif:

En maintenant un ancien système de collègues, je souhaite verrouiller toutes les connections de mot de passe afin de ne permettre que les connections basées sur les keys ssh.

Infos:

  • Le système CentOS 6.5 n'offre aucune fonctionnalité d'authentification basée sur le réseau (sans Kerberos, ldap, gssapi, etc.), /etc/nsswitch.conf ne connaît que des "files").

  • /etc/passwd montre tous les users non-système que j'attends.

Problème:

/etc/shadow ne montre que la moitié d'entre eux. Le locking de leurs passwords avec le nom de passwd -l username fonctionné. Maintenant, j'aimerais également voir les inputs pour les autres users et que leurs passwords sont également verrouillés.

Procès:

a fait un passwd -l username de passwd -l username pour l'un des users "manquants", et le système me donne passwd: Success . Mais je ne vois toujours aucune input pour cet user dans l'ombre. Des idées?

Testez plus

Le test défini si le operating system ne connaît pas datatables telles que le hash du mot de passe, l'expiration, etc.:

 getent shadow thatuser 

Si le operating system peut get ces données par n'importe quel moyen (ldap ou quelque chose), il existe une ligne de sortie non vide:

 getent shadow thatuser thatuser:x::::::: 

Si j'utilise l'éditeur de text pour supprimer une ligne de /etc/shadow , il n'y a pas de sortie.

Verrouillage des passwords

Votre locking de mot de passe proposé fonctionnerait bien s'il y a des lignes d'ombre ou non. La ligne d'ombre non existante signifie qu'un user ne peut pas se connecter avec un mot de passe.

Re-peupler l'ombre

Les anciens administrateurs ont probablement créé certains users en éditant manuellement /etc/passwd . Il semble laid, mais ce n'est pas une erreur; Le operating system est conçu pour gérer cela. Une méthode rapide de remplissage de l'ombre consiste à boucler toutes les inputs passwd sur ces commands:

 chage -m 0 thatuser 

Cela créera les lignes /etc/shadow manquantes en tant que login:x::0::::: simple login:x::0::::: . L'effet secondaire est que toutes les lignes /etc/shadow existantes réinitialiseront le "nombre minimal de jours entre les changements de mot de passe consécutifs". Mais ce n'est pas un paramètre souvent utilisé et vous savez probablement si vous en avez besoin (politique de l'entreprise, etc.).

Je pense que vous devriez pouvoir interdire toutes les connections de mot de passe et autoriser uniquement l'authentification par key sur le système en définissant les parameters de configuration ci-dessous dans la configuration global ssh (généralement dans / etc / ssh / sshd_config):

 PubkeyAuthentication yes PasswordAuthentication no 

Vous devrez recharger le service sshd après toute modification du file de configuration.