MacOS SSH-Verbindung mit Schlüssel

Ich versuche, mit dem SSH-Schlüssel eine Verbindung zu meinem Host herzustellen. Ich habe ein Schlüsselpaar generiert und den öffentlichen Schlüssel zu den autorisierten Schlüsseln des Servers hinzugefügt.

Allerdings kann ich mit meinem privaten Schlüssel keine Verbindung zum Server herstellen. Jedes Mal, wenn ich mich verbinde, fragt er nach dem Passwort.

Ich habe versucht zu laufen ssh-add my_key_nameund es sagte, dass es in Ordnung ist und hinzugefügt wurde. Aber es funktioniert nicht.

Auch ich habe versucht, meine hinzuzufügenconfig

Host alias
    HostName host
    User user_name
    IdentityFile ~/.ssh/id_rsa

Es funktioniert auch nicht. ssh aliasfunktioniert, fragt aber immer noch nach dem Passwort.

Es wäre hilfreich, etwas mehr Kontext darüber zu bekommen, was fehlschlägt. Die Verwendung des -vvvVerbose-Flags zur Protokollierung während Verbindungen zeigt normalerweise genau, warum es nicht funktioniert. Darüber hinaus ist das Einloggen in den Server und das Tailing der Datei secure.log eine weitere großartige Ressource, wenn es sich tatsächlich um eine Server-Fehlkonfiguration handelt. In 99 % der Fälle handelt es sich jedoch um ein Berechtigungsproblem auf Ihrem lokalen Computer.
Dazu habe ich eine Art Anleitung geschrieben. Siehe: apple.stackexchange.com/questions/285805/how-to-ssh-in-one-line/…
ssh-Schlüssel funktionieren nur, wenn der verbundene Server bereits den öffentlichen Schlüssel kennt, der dem privaten Schlüssel des Clients entspricht. Sie müssen zuerst die erforderlichen Schritte unternehmen, damit dies geschieht.

Antworten (3)

Eine detaillierte Erklärung dessen, was vor sich geht, finden Sie unter SSH-Agenten . Auf der Hälfte der Seite finden Sie den SSH-Agenten für OS X und macOS .

Siehe auch Apples Technical Note TN2449 – OpenSSH-Updates in macOS 10.12.2

Sie müssen Ihrer Konfigurationsdatei einige Zeilen hinzufügen:

# enable integration between Keychain and SSH Agent  
UseKeychain yes  
AddKeysToAgent yes

Sobald Sie das getan haben, werden Sie, glaube ich, nach Ihrem Passwort gefragt, wenn Sie zum ersten Mal auf Ihren Server ssh. Danach werden die von Ihnen bereitgestellten Schlüssel verwendet.

Ihre Konfigurationsdatei sollte also so aussehen:

Host alias
    HostName host
    User user_name
    IdentityFile ~/.ssh/id_rsa
    # enable integration between Keychain and SSH Agent  
    UseKeychain yes  
    AddKeysToAgent yes

Um eine Verbindung mit SSH-Schlüsseln herzustellen, müssen Sie den Schlüssel mithilfe von von Ihrem Computer auf den Remote-Server kopieren ssh-copy-id user@remote_ip_address.

Sie werden aufgefordert, das Passwort für den Remote-Server einzugeben, und der Schlüssel wird kopiert.

Wenn Sie ein Schlüsselpaar mit einem Passwort generiert haben, müssen Sie dieses Passwort beim Verbinden immer eingeben. Wenn nicht, können Sie sich einfach mit verbinden ssh user@remote_ip_addressund Sie werden mit dem Remote-Computer verbunden.

Nach Anleitung habe ich auf dem Server ein Schlüsselpaar generiert und von dort ein privates kopiert

Sind die Berechtigungen vonauthorized_keys korrekt? Sollte 400 im Besitz des Benutzers sein.

Überprüfen Sie die Protokolle des Remote-Servers, die normalerweise hilfreich sind, um Authentifizierungsprobleme auf SSH zu beheben.

Zusätzlich zur Überprüfung der Berechtigungen der Datei „authorized_keys“ muss das Verzeichnis „~/.ssh“ selbst über die Berechtigungen 700 verfügen.