Wie erstelle ich einen Linux-Benutzer ohne Passwort, kann es aber festlegen?

8

Ich habe einen Benutzernamen und einen SSH-Schlüssel für einen (hypothetischen) Mann und muss ihm Administratorzugriff auf einen Linux-Server (Ubuntu) gewähren.

Ich möchte, dass er sich über SSH anmelden und dann sein Passwort über eine sichere Verbindung selbst festlegen kann, anstatt das Passwort weiterzugeben.

Ich weiß, wie ich das Passwort ablaufen lassen und ihn zwingen kann, es beim ersten Anmelden zurückzusetzen. Aber das funktioniert nicht , es sei denn , er hat einige bereits Passwort, das ich ihm dann sagen müssen.

Ich habe darüber nachgedacht, das Passwort leer zu machen - SSH würde keine Anmeldung zulassen, aber dann kann jeder suin den Benutzer.

Meine Frage ist, gibt es eine bewährte Methode, um Konten auf diese Weise zu erstellen? Oder ist das Festlegen eines Standardkennworts unvermeidlich?

Leonid Shevtsov
quelle

Antworten:

7

Sie haben seinen öffentlichen SSH-Schlüssel? Legen Sie es in .ssh/authorized_keyssein Home-Verzeichnis. Sobald Sie dies getan haben (und die Berechtigungen sind restriktiv genug - SSH ist diesbezüglich pingelig), kann er sich anmelden, ohne ein Passwort zu benötigen ... und er wird niemals eines benötigen.

Das Beste daran ist, dass sein öffentlicher Schlüssel nicht vertraulich ist. Daher ist es in Ordnung, ihn in E-Mails oder im Chat weiterzugeben, und sein privater Schlüssel verlässt nie seinen Computer.

Ladadadada
quelle
1
Er wird ein Passwort brauchen sudo, nicht wahr?
Leonid Shevtsov
1
Sie können passwortloses sudo zulassen.
MDMarra
1
Mit einer Zeile wie USERNAME = NOPASSWD: /usr/local/bin/pwreset.shin /etc/sudoersund dem Skript, pwreset.shdas den Befehl /usr/bin/passwd USERNAMEausführt, benötigt er kein Passwort, um sein eigenes Passwort (neu) festzulegen.
Ansgar Wiechers
0

Fügen Sie einfach eine Textdatei mit dem Kennwort in das Haus des Benutzers mit den Rechten 600 ein. Der Benutzer, der sich mit dem Schlüssel anmeldet, ändert das Kennwort und löscht die Datei. Mit einem Skript mit gesetztem suid-Bit können Sie sogar so etwas wie passwd <textfile erstellen, ohne dem Benutzer das Recht zu geben, die Datei zu lesen (Rechte wären 060 mit group = root).

Erwin
quelle
-2

Das Festlegen eines Standardkennworts ist unvermeidlich. Mein Verfahren wäre:

1) Generieren Sie ein sicheres, zufälliges Passwort (für jeden Benutzer unterschiedlich). Ich verwende den Passwortgenerator in den Kontoeinstellungen von OSX, aber Sie können auch eine Website wie http://strongpasswordgenerator.com verwenden

2) Geben Sie ihnen das Passwort sicher, z. B. persönlich oder über http://www.privnote.com

3) Erzwingen Sie beim ersten Anmelden einen Reset, da Sie bereits wissen, wie es geht

Oliver Kohll
quelle
Niemals , unter keinen Umständen nutzen jede Art von Online - Passwort - Generator (oder -Checker für diese Angelegenheit).
Ansgar Wiechers
@AnsgarWiechers, können Sie diese Aussage mit einem guten Argument unterstützen?
Zoredache
Zu viel Aufwand, den Sie nicht kontrollieren können. Auch wenn der Code ist wirklich JavaScript im Browser ausgeführt wird : tun Sie das Skript , bevor Sie es jedes Mal , Peer-Review , um sicherzustellen , dass es immer noch das Passwort nicht überall schickt?
Ansgar Wiechers
Aus diesem Grund weisen Sie es an, einige hundert Passwörter zu generieren und eines nach dem Zufallsprinzip auszuwählen.
Grant
@Grant: Selbst wenn Sie eines von ein paar hundert Passwörtern auswählen, würde ein Angreifer immer noch auf ein paar hundert Vermutungen zurückgreifen, die viel zu einfach sind, um sie brutal zu erzwingen. Es stehen genügend Optionen zur Verfügung, um zufällige Passwörter lokal zu generieren, ohne dass ein Webzugriff erforderlich ist. Wenn Sie sich überhaupt um Sicherheit kümmern: Verwenden Sie eine davon.
Ansgar Wiechers