Fügen Sie einen Benutzer ohne Kennwort, jedoch mit SSH und öffentlichem Schlüssel hinzu

33

Ich möchte Red Hat Linux einen Benutzer hinzufügen, der kein Kennwort zum Anmelden verwendet, sondern stattdessen einen öffentlichen Schlüssel für ssh. Dies wäre in der Befehlszeile.

user119776
quelle
useradd --password-disable und adduser --password disable. Ich habe mir die Optionen für beide angesehen und sehe die Passwortsperre für beide nicht als Option.
user119776
Wissen Sie, wie man eine SSH-Schlüsselanmeldung im Allgemeinen einrichtet? Ich denke, das Konto muss nur nicht gesperrt werden, was bedeuten würde, dass ein Passwort aktiv ist. Es kann ein langes Passwort sein, das eigentlich niemand kennt.
Micah Yoder
Ich habe den Schlüssel und weiß, dass ich den Ordner unter dem Benutzerverzeichnis erstellen und dort den öffentlichen Teil einfügen muss. Ich kann es auf diese Weise versuchen, dachte aber, dass ich das Benutzerkennwort auch deaktivieren muss.
user119776
Anstatt einen anderen Beitrag zu verfassen, in dem gezeigt wird, wie Sie einen Benutzer hinzufügen, stimme ich Lambert zu. Sie müssen sich speziell auf den Teil dieser Aufgabe konzentrieren, mit dem Sie Probleme haben. Wenn Sie nicht einmal wissen, wie man einen Benutzer hinzufügt, sollten Sie klein anfangen und sich hocharbeiten. Ich glaube, Sie müssen nur den Benutzer erstellen, kein Kennwort festlegen und den Schlüssel in /home/username/.ssh/authorized_keys eingeben.
Baazigar

Antworten:

37

Beginnen Sie mit dem Erstellen eines Benutzers:

useradd -m -d /home/username -s /bin/bash username

Erstellen Sie auf dem Client ein Schlüsselpaar, von dem aus Sie Folgendes ausführen ssh:

ssh-keygen -t dsa

Kopieren Sie den öffentlichen Schlüssel /home/username/.ssh/id_dsa.pubauf den RedHat-Host in/home/username/.ssh/authorized_keys

Stellen Sie die richtigen Berechtigungen für die Dateien auf dem RedHat-Host ein:

chown -R username:username /home/username/.ssh
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/authorized_keys

Stellen Sie sicher, dass die Authentifizierung mit öffentlichem Schlüssel auf dem RedHat-Host aktiviert ist:

grep  PubkeyAuthentication /etc/ssh/sshd_config
#should output:
PubkeyAuthentication yes

Wenn nicht, ändern Sie diese Anweisung in yes und starten Sie den sshdDienst auf dem RedHat-Host neu.

Vom Client aus starten Sie eine sshVerbindung:

ssh username@redhathost

Es sollte automatisch suchen nach dem Schlüssel id_dsain ~/.ssh/. Sie können eine Identitätsdatei auch wie folgt angeben:

ssh -i ~/.ssh/id_dsa username@redhathost
Lambert
quelle
3
Eigentlich habe ich die Passwortsperre nicht vergessen. Da ich es einfach nicht gesetzt habe, wird das Passwort des neu angelegten Benutzers automatisch gesperrt.
Lambert
3
Verwenden Sie RSA anstelle von DSA
sg
erkennen Sie die „ssh-keygen -t dsa“ Befehlstasten für den aktuellen Benutzer erstellen wird, könnte es Ihre eigenen Schlüssel ersetzen
yarun können
15

Unter Ubuntu können Sie den Benutzer hinzufügen mit:

adduser --disabled-password <username>

Erstellen Sie dann eine .ssh/authorized_keysDatei in ihrem Ausgangsverzeichnis mit ihrem öffentlichen Schlüssel.

Mitar
quelle
7

Du könntest benutzen:

usermod --lock <username>

Von der Manpage:

Sperren Sie das Passwort eines Benutzers. Dies setzt ein '!' vor dem verschlüsselten Passwort, wodurch das Passwort effektiv deaktiviert wird. Sie können diese Option nicht mit -p oder -U verwenden. Hinweis: Wenn Sie das Konto sperren möchten (nicht nur den Zugriff mit einem Kennwort), sollten Sie auch EXPIRE_DATE auf 1 setzen.

Paul Mitchell
quelle