SSH Authentizierung funktioniert nicht

  • Hallo,

    ich bin neu hier im Forum und auch neu mit dem Raspberry.

    Mein Problem:
    nach Generierung eines RSA SSH-Key Paars auf meinem Notebook habe ich per ssh-copy-id den public key auf meinen Raspberry Pi übertragen.
    Dieser Key ist auf dem Raspi im ~/.ssh/authorized_keys zu sehen.

    Trotzdem fragt der Raspi beim Login weiterhin nach dem Passwort.
    Ich habe auf dem Raspi die Rechte sowohl des Verzeichnisses .ssh (Oktal 700) als auch der Datei authorized_keys (Oktal 600) überprüft: beides sind korrekt.

    Ich habe eine Headless installation gemacht (ohne Tastatur, Maus, Monitor). Der Raspi liess vom Anfang an sich problemlos per WLAN seuern.

    Hat jemand einen Hinweis, woran es liegen kann?

    Vielen Dank.

    Mein System:
    Raspberry Pi B 3
    Raspbian Version: 2017-07-05-raspbian-jessie (kein NOOBS)
    Headless Installation, Steuerung per WLAN
    SD Karte: 32 GByte

    Mein Client System:
    Notebook unter Linux Mint 18.2 64 Bits Xfce.

  • Es ist eine sehr gute Entscheidung einen Key zu benutzen. Speziell wenn Du Deine Raspi und den ssh Zugriff aus dem Internet zugreifbar machen willst. Es gibt jetzt zwei Wege Dein Problem zu untersuchen:

    1) Du postest uns mal den Inhalt Deiner /etc/ssh/sshd_config. Falls Du da schon rumkonfiguriert hast solltest Du private Infos wie Usernamen u.ae loeschen
    2) Du Enablest den debug mode im ssh server

    Code
    # Logging
    SyslogFacility AUTH
    LogLevel INFO


    ändern in

    Code
    # Logging
    SyslogFacility AUTH
    LogLevel DEBUG


    restartest sshd und siehst mal nach was im Log steht. Oder postest uns was da steht (Wieder auf Private Infos vorher untersuchen und maskieren)

  • Moin foersu,

    erstmal: Herzlich Willkommen im Forum!!

    Bei der Generierung des Schlüsselpaares durch ssh-keygen -b 4096 wird man nach einer passphrase gefragt.
    Wenn man die mit "nichts" beantwortet, wird ein Schlüssel ohne Passwort generiert.
    Hast du an der Stelle ein Passwort gesetzt, dann wird es auch immer abgefragt.

    Das nur als eventuelle "Fehlerquelle".

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo,

    erstmals herzlichen Dank für die schnellen und zahlreichen Feedbacks!

    Eine Pasphrasse habe ich beim Erzeugen des Key-Paars eingegeben.

    framp:
    zum Enablen des debug modes im ssh server habe ich folgende Fragen:

    • In welcher Datei soll ich die Änderungen editieren?
    • mit welchem Befehl re-starte ich SSH?
    • Wo finde ich die Log-Datei deren Inhalt ich dann poste?


    Danke!

    foersu
    (forum ergo sum)

  • Zitat von "foersu" pid='297198' dateline='1503866410'


    Trotzdem fragt der Raspi beim Login weiterhin nach dem Passwort.

    Ist es bestimmt der Raspi (als sshd-Server) oder ist es das _lokale_ System das die "pass phrase" (mit der Du den privaten Schlüssel schützt) wissen will?

    EDIT:

    Hast Du z. Zt. in der "/etc/ssh/sshd_config" deines PI

    Code
    PasswordAuthentication no


    oder

    Code
    PasswordAuthentication yes


    stehen?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (28. August 2017 um 12:25)

  • Zitat von "foersu" pid='297228' dateline='1503907558'


    Eine Pasphrasse habe ich beim Erzeugen des Key-Paars eingegeben.

    Und genau das ist das Problem.
    Erstelle doch einen neuen Schlüssel, nur diesen ohne eine Passphrase. Dann wird es klappen.

    Grüsse
    Peter

  • Zitat von "someone" pid='297234' dateline='1503909752'


    Und genau das ist das Problem.

    Naja das wissen wir noch nicht. Der TE schreibt, dass _der PI_ das Passwort verlangt und die "pass phrase" wird ja evtl. auch anders sein, als das Passwort das der TE für die "Password authentication" (vor der pub key authentication) verwendet hat.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (28. August 2017 um 10:53)

  • Zitat von "someone" pid='297239' dateline='1503911525'


    Ich habe es zumindest so verstanden, dass er den key anstelle des Passwortes verwenden will.

    In seinem 1. Beitrag schreibt der TE Folgendes:

    Zitat


    Trotzdem fragt der Raspi beim Login weiterhin nach dem Passwort.

    Wenn das richtig ist, was der TE geschrieben hat, dann kann es sich nicht um die "pass phrase" handeln, denn diese dient "nur" dem Schutz des priv key auf dem lokalen System (ssh-Client). D. h. sie wird vom lokalen System verlangt (nicht vom PI/sshd-Server) und die "pass phrase" verlässt auch nie das lokale System.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Moin!

    Das sind Fragen die nur foersu beantworten kann.

    Wenn aber die Passphrase gleich Raspberry-Passwort ist....

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Zitat von "DG8BR" pid='297245' dateline='1503914446'


    Wenn aber die Passphrase gleich Raspberry-Passwort ist....

    Bei einem "guten" ssh-Client sieht man ob der die Passphrase oder das Passwort will. Z. B.:

    Code
    :~$ ssh <host>
    Enter passphrase for key '/home/<user>/.ssh/id_ed25519':

    EDIT:

    BTW: ... es wäre aber keine gute Sache, wenn Passphrase gleich Raspberry-Passwort ist.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (28. August 2017 um 12:15)

  • Hallo an Alle,

    Vielen Dank für den regen Austausch, der meine Frage entfacht hat, weiter so! :thumbs1: Vielleicht kommen wir so zur Lösung.

    Das Passwort (Login-Passwort des Raspi) ist nicht gleich der von mir bei der Schlüsselgenerierung eingegebenen Passphrase.


    someone:
    "Und falls es so ist, darf er bei der Erstellung eines Keys keine Passphrase eingeben": dem ist meine ich nicht so. Ich bin von der Passwort gestützen Authentifizierung zur SSH-Key gestützen aus reinen Sicherheitsgründen übergegangen: weil ich in Zukunft den Raspi auch vom Internet her erreichen möchte, das aber nur als Detail hier.

    Bei einer SSH-Key gestützen Authentifizierung wird keine Authentifitzierungsinformation mehr zwischen Client uns SSH-Server an sich ausgetauscht. Die Passphrase wird (lokal im SSH-Cleint) abgefragt um den privaten Key zu aktivieren zur Verschlüsselung des vom Server empfangenen Challenge, der dann zum Server gesendet wird. Dieser verschlüsselter Challenge wird am SSH-Server mit dem public Key entschlüsselt, womit, bei erfolgreicher Entschlüsselung der Requester authentifiziert ist.
    Ein SSH-Schlüssel mit leerer (d.h. ohne) Passphrase hebelt hier die ganze Sicherheit aus.

    Also kurz gefasst: aus den o.g. Gründen möchte ich eine Passphrase eingeben, kein Passwort.

    Grüße

  • Zitat von &quot;foersu&quot; pid='297251' dateline='1503918558'

    Bei einer SSH-Key gestützen Authentifizierung wird keine Authentifitzierungsinformation mehr zwischen Client uns SSH-Server an sich ausgetauscht. Die Passphrase wird (lokal im SSH-Cleint) abgefragt um den privaten Key zu aktivieren zur Verschlüsselung des vom Server empfangenen Challenge, der dann zum Server gesendet wird. Dieser verschlüsselter Challenge wird am SSH-Server mit dem public Key entschlüsselt, womit, bei erfolgreicher Entschlüsselung der Requester authentifiziert ist.
    Ein SSH-Schlüssel mit leerer (d.h. ohne) Passphrase hebelt hier die ganze Sicherheit aus.

    Das ist so nicht richtig. Die Challenge geht vom Server an den Client und der Client verschlüsselt diese Challenge mit dem priv key und sendet das an den Server. Ohne passphrase wird hier gar nichts ausgehebelt.

    Du hast aber die Frage nicht beantwortet: Was gibst Du jetzt ein, nur das Passwort oder nur die passphrase?

    EDIT:

    Hast Du in der config des Servers "PasswordAuthentication yes" stehen?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (28. August 2017 um 13:17)

  • rpi444:

    Ich kann z.Z. nur das Passwort eingeben. Der Login Vorgang erfolgt als hätte ich noch keinen public-key an den Server (Raspi) gesendet.
    Anm.: der public-key ist aber auf dem Server unter ~/.ssh/authorized_keys eindeutig zu sehen.

    Zu deiner Erläuterung: ich verstehe es genaus so wie du, ich merke aber, dass mein Satz "des vom Server empfangenen Challenge, der dann zum Server gesendet wird" mißverstaden werden kann. Das hier nur um es für die weiteren Teilnehmer am Thread klar zu stellen.

    Danke.

  • Zitat von &quot;foersu&quot; pid='297260' dateline='1503922757'


    ..., ich merke aber, dass mein Satz "des vom Server empfangenen Challenge, der dann zum Server gesendet wird" mißverstaden werden kann.

    OK, siehe dann z. B. die Formulierung aus dem Ubuntu-Wiki:

    Zitat


    Wenn man sich nun mit der Public-Key-Methode auf einem SSH-Server anmelden möchte, so schickt der Server dem Klienten eine zufällig generierte Challenge. Der Klient verschlüsselt diesen Datenblock mit seinem privaten Schlüssel, (wofür nötigenfalls die Passphrase abgefragt wird,) und wenn der Server diesen Chiffre mit dem zugehörigen öffentlichen Schlüssel wieder entschlüsseln kann, ist die Identität des Benutzers bestätigt.

    Quelle: https://wiki.ubuntuusers.de/SSH/#Authentif…ber-Public-Keys
    Automatisch zusammengefügt:

    Zitat von &quot;foersu&quot; pid='297260' dateline='1503922757'


    Ich kann z.Z. nur das Passwort eingeben. Der Login Vorgang erfolgt als hätte ich noch keinen public-key an den Server (Raspi) gesendet.

    Poste mal von deinem PI, die Ausgabe von:

    Code
    cat /etc/ssh/sshd_config

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (28. August 2017 um 14:29)

  • rpi444: Nachtrag.
    Ja, es steht so: "PasswordAuthentication yes". Ich wollte es auf "no" setzen nachdem die Authentifizierung mit dem Key funktioniert hat, sonst dachte ich sperre ich mir beide Zugänge wenn es mit dem Key nicht funktioniert (so wie es im Moment in der Tat ist) und die PasswordAuthentication auf "No" steht.

    Manul:
    hier der Output:


    Anm. 1: ich sehe, dass in der Sparte

    Code
    debug1: Trying private key: ...


    der Schlüssel nicht aufgeführt wird, dessen public Teil ich in den Raspi geladen habe. Beide (privat und public) sind aber im Client (d.h. in meinem Notebook) im ~/.ssh/ vorhanden :s

    Anm. 2: da der Schlüssel einen anderen Namen als "id_rsa" hat, habe ich den in den Raspi mit der Option "-i" kopiert (habe gelesen so soll es sein):

    Code
    ssh-copy-id -i ...

    Ich kann mir aber nicht vorstellen, dass es ab abweichenden Namen liegt. Der Name ist ein syntaktisch valider Name.

    Ersetzungen privater Daten im Output:
    usr: mein Benutzername im Notebook
    MEIN_RECHNER: Name meines Rechners (d.h. meines Notebooks)
    MEIN_RASPI: Hostname meines Raspi (anstatt der IP-Adresse)

    Gruß

    Einmal editiert, zuletzt von foersu (28. August 2017 um 15:26)

  • Zitat von &quot;foersu&quot; pid='297266' dateline='1503926089'


    rpi444: Nachtrag.
    Ja, es steht so: "PasswordAuthentication yes". Ich wollte es auf "no" setzen nachdem die Authentifizierung mit dem Key funktioniert hat, sonst dachte ich sperre ich mir beide Zugänge wenn es mit dem Key nicht funktioniert (so wie es im Moment in der Tat ist) und die PasswordAuthentication auf "No" steht.

    Ja, Du warst zu schnell. Nach einer Änderung in der sshd_config (per ssh) lässt man die "alte" Verbindung bestehen und restartet lediglich den sshd. Danach eine 1. Anmeldung per pub key und wenn diese nicht funktioniert, kann man mit der alten noch bestehenden ssh-Verbindung (die per Passwort hergestellt worden ist) ), die Änderungen in der sshd_config noch immer rückgängig machen.

    Wie war deine Vorgehensweise (alte Verbindung abgebrochen und/oder reboot PI oder restart sshd oder ...)?

    EDIT:

    Hast Du nur headless Zugang zu deinem PI oder evtl. auch ein Gerät mit einem OS, mit dem Du auf der SD-Karte editieren kannst? Oder Tastatur + Monitor am PI?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p6 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (28. August 2017 um 15:32)

  • Code
    ssh -o IdentityFile=~/.ssh/<name_des_keys> pi@MEIN_RASPI

    Du siehst ja im "ssh -v"-output, welche Schlüssel er zu lesen versucht - das sind eben die Standardnamen, den speziellen musst Du ihm explizit mitgeben. Wenn das auf Dauer zu umständlich ist, tut's ein Eintrag der Form

    Code
    Host MEIN_RASPI
    User pi
    IdentityFile ~/.ssh/<name_des_keys>

    in ~/.ssh/config.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!