Comment créer un utilisateur Linux sans mot de passe mais pouvoir le définir?

8

J'ai un nom d'utilisateur et une clé SSH pour un gars (hypothétique) et je dois lui donner un accès administrateur à un serveur Linux (Ubuntu).

Je veux qu'il puisse se connecter via SSH, puis définir lui-même son mot de passe via une connexion sécurisée, au lieu de passer le mot de passe.

Je sais comment faire expirer le mot de passe et le forcer à le réinitialiser lors de la première connexion. Mais cela ne fonctionne que s'il a déjà un mot de passe, que je dois lui dire.

J'ai pensé à rendre le mot de passe vide - SSH n'autoriserait pas la connexion, mais n'importe qui peut suentrer dans l'utilisateur.

Ma question est la suivante: existe-t-il une meilleure pratique pour créer des comptes de cette manière? Ou la définition d'un mot de passe par défaut est inévitable?

Leonid Shevtsov
la source

Réponses:

7

Vous avez sa clé publique SSH? Mettez-le dans .ssh/authorized_keysson répertoire personnel. Une fois que vous avez fait cela (et que les autorisations sont suffisamment restrictives - SSH est pointilleux à ce sujet), il pourra se connecter sans avoir besoin d'un mot de passe ... et il n'en aura jamais besoin.

La meilleure partie est que sa clé publique n'est pas sensible, donc la faire circuler dans les e-mails ou le chat est bien, et sa clé privée ne quitte jamais son ordinateur.

Ladadadada
la source
1
Il aura besoin d'un mot de passe pour sudo, n'est-ce pas?
Leonid Shevtsov
1
Vous pouvez autoriser sudo sans mot de passe.
MDMarra
1
Avec une ligne comme USERNAME = NOPASSWD: /usr/local/bin/pwreset.shin /etc/sudoerset le script pwreset.shexécutant la commande, /usr/bin/passwd USERNAMEil n'aura pas besoin de mot de passe pour (re) définir son propre mot de passe.
Ansgar Wiechers
0

Il suffit de mettre un fichier texte avec le mot de passe à l'intérieur du domicile des utilisateurs avec des droits 600. L'utilisateur se connecte avec la clé change le mot de passe et supprime le fichier. Avec un skript avec un ensemble de bits suid, vous pouvez même créer quelque chose comme passwd <fichier texte sans donner à l'utilisateur le droit de lire le fichier (les droits seraient 060 avec group = root)

Erwin
la source
-2

La définition d'un mot de passe par défaut est inévitable. Ma procédure serait:

1) générer un mot de passe aléatoire sécurisé (différent pour chaque utilisateur). J'utilise le générateur de mot de passe dans les paramètres du compte OSX mais vous pouvez utiliser un site Web tel que http://strongpasswordgenerator.com

2) Fournissez-leur le mot de passe en toute sécurité, par exemple en personne ou via http://www.privnote.com

3) Forcer une réinitialisation lors de la première connexion comme vous savez déjà le faire

Oliver Kohll
la source
Ne jamais , en aucun cas, utiliser un quelconque type de générateur de mot de passe en ligne (ou -checker d'ailleurs).
Ansgar Wiechers
@AnsgarWiechers, pouvez-vous soutenir cette déclaration avec un bon argument?
Zoredache
Trop impliqué que vous ne pouvez pas contrôler. Même si le code exécute vraiment JavaScript dans le navigateur: vérifiez-vous le script à chaque fois avant de l'utiliser pour vous assurer qu'il n'envoie toujours pas le mot de passe?
Ansgar Wiechers
C'est pourquoi vous lui dites de générer quelques centaines de mots de passe et d'en choisir un au hasard.
Accordez le
@Grant: Même si vous en choisissez un parmi quelques centaines de mots de passe, un attaquant en sera encore à quelques centaines de suppositions, qui sont beaucoup trop faciles à forcer. Il existe suffisamment d'options à portée de main pour générer des mots de passe aléatoires localement sans aucun type d'accès Web impliqué. Si vous vous souciez de la sécurité: utilisez-en une.
Ansgar Wiechers