Kann ich die SSH-Schlüsselauthentifizierung verwenden, um mich bei einem Remote-System mit einem anderen Benutzernamen anzumelden?


17

Angenommen, ich habe ein Remote-System mit dem Namen "Remote-System" und ein Benutzerkonto "Foouser" auf diesem System.

Ich weiß, dass ich auf meinem lokalen System ein SSH-Schlüsselpaar als lokaler Benutzer "foouser" generieren kann und den öffentlichen Schlüssel in der Datei "/home/foouser/.ssh/authorized_keys" auf "remotesystem" ablegen kann. Wenn ich als "foouser" von meinem lokalen System zu "remotesystem" eine SSH-Verbindung herstelle, verwendet SSH das Schlüsselpaar, um mich zu authentifizieren.

Aber was ist, wenn mein lokaler Benutzername nicht mit dem Benutzernamen auf dem Remote-System übereinstimmt? Das heißt, was ist, wenn ich als lokaler Benutzer "baruser" zu "remotesystem" SSH wollen? Natürlich muss ich ein Schlüsselpaar für "baruser" generieren und den öffentlichen Schlüssel zu "/home/foouser/.ssh/authorized_keys" hinzufügen. Dann sollte ich in der Lage sein, "ssh foouser @ remotesystem" zu verwenden, während ich lokal als "baruser" angemeldet bin, und SSH wird das Schlüsselpaar zur Authentifizierung verwenden, oder?

Ich frage, weil ich in diesem Szenario erfolglos versuche, die Schlüsselauthentifizierung zum Laufen zu bringen. Ich bin mir nicht sicher, ob dies an der Nichtübereinstimmung des Benutzernamens oder an einem Konfigurationsproblem mit dem SSH-Server auf dem Remote-System liegt.


Ich habe die Server-seitige Protokollierung hochgefahren, und es stellte sich heraus, dass die Berechtigungen für das Basisverzeichnis des Remotebenutzers problematisch waren. Problem gelöst! Vielen Dank an alle, die Antworten gegeben haben.
Matt Hurne

Antworten:


11

Ja, Sie können dies so tun, wie Sie es beschrieben haben.

baruser @ here ~ $ ssh-add -l
4096 10: b3: fd: 29: 08: 86: 24: a6: da: 0a: dd: c6: 1e: b0: 66: 6a id_rsa (RSA)
baruser @ here ~ $ ssh foouser @ remotesystem
motd nachricht, etc.
foouser @ remotesystem ~ $

Danke für die Antwort. Ich wusste, dass ich nicht verrückt bin ... :-) An der SSH-Serverkonfiguration des Remote-Systems muss ein Fehler aufgetreten sein, sodass die Schlüsselauthentifizierung nicht funktioniert.
Matt Hurne

4
Wenn Sie "ssh -V foouser @ remotesystem" wählen, erhalten Sie einige Informationen darüber, was falsch läuft. Oft ist es ein Berechtigungsfehler auf ~ / .ssh.
Paul Tomblin

4
Nicht -V (zeigt die Versionsnummer), sondern -vvv (maximale Ausführlichkeit)
Leven

10

Es ist ein bisschen abseits, aber .....

Wenn Sie für einen Remote-Server immer denselben Benutzernamen verwenden, ist es möglicherweise auch hilfreich, einen Host in Ihre ssh-Konfiguration aufzunehmen:

Host remotesystem
    User baruser

Auf diese Weise müssen Sie sich beim Anmelden nicht mehr an den Benutzernamen erinnern und schließen diesen aus, wenn Sie in Zukunft Probleme mit Schlüsseln haben.


5

Ihr lokaler Benutzername spielt keine Rolle (abgesehen davon, dass sich der private Schlüssel im Home-Verzeichnis Ihres lokalen Benutzers befinden muss). Kopieren Sie einfach den Schlüssel in den Bereich des Remote-Benutzers, authorized_keysund es wird funktionieren.


3

Bei Problemen mit ssh müssen Sie zunächst die Ausführlichkeit des Clients erhöhen:

ssh user @ machine -vvv

Wenn Sie dadurch keinen Einblick in die Fehlerursache erhalten, müssen Sie die Protokollebene auf dem Server ändern und den Dämon neu starten.

LogLevel DEBUG3

Sie sollten die Debug-Ausgabe in /var/log/auth.log finden (oder wo immer ssh konfiguriert ist, um sich anzumelden). Denken Sie daran, das Problem wieder so einzustellen, wie Sie es gefunden haben.


2

Die Berechtigungen für die .ssh-Verzeichnisse auf beiden Computern sind weitgehend korrekt. Im Allgemeinen bedeutet dies 700 im Verzeichnis .ssh und höchstens 755 im Basisverzeichnis. Zusätzlich zu 600 für alle Dateien in den .ssh-Verzeichnissen.

Wenn der Benutzer auf dem fernen System root ist, stellen Sie sicher, dass root ssh kann. (PermitRootLogin in sshd_config) und dieser öffentliche Schlüssel (PubkeyAuthentication) und ggf. RSA (RSAAuthentication) sind aktiviert.


Ist RSAAuthentication nicht eine völlig separate Methode?
Grawity

RSA ist einer der von SSH (zusammen mit DSA) unterstützten Public-Key-Algorithmen. Es war die einzige Methode in SSH1.
Alexandre Carmel-Veilleux

2

Wenn Sie SE Linux aktiviert haben, müssen Sie auch Folgendes tun.

Fügen Sie das SELinux-Label hinzu, authorized_keysdamit sshd darauf zugreifen kann.

semanage fcontext -a -t sshd_key_t ~foo/.ssh/authorized_keys
restorecon -Rv ~user/.ssh

0

Klingt so, als würden Sie alles richtig machen, aber stellen Sie sicher, dass die Berechtigungen für authorized_keys korrekt sind. Sie sollten auf 600 eingestellt sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.