Connection closed by xx.xx.xx.xx port yyyy [preauth]

  • Hallo,


    habe wie in dem Thread Serversicherheit empfohlen, das Webserversecurity Handbuch angeschaut. Habe gemäß der Anleitung ein Schlüsselpaar generiert auf meinem Clientrechner und den öffentlichen Schlüssel wie im Handbuch beschrieben ssh-copy-id auf den Server geladen. Dort liegt sie auch in dem Homeverzeichnis unter .ssh in der Datei authorized_keys.


    Wenn ich jetzt versuche mich mit ssh zu verbinden, kommt die Fehlermeldung:

    Permission denied (publickey)


    In der auth.log Datei steht dazu nur:


    Jan 16 21:03:22 vxxxxxx sshd[10534]: Connection from <meine client ip Adresse> port 50332 on <server ip adresse> port 22

    Jan 16 21:03:22 vxxxxxx sshd[10534]: Connection closed by <meine client ip Adresse> port 50332 [preauth]


    Woran kann das liegen?


    Vg


    Albert

  • Hay,

    Woran kann das liegen?

    das kann zum Beispiel an den Rechten liegen. Das Verzeichnis und die Datei authorized_keys müssen dem User des Keys gehören und die Rechte 700 (.ssh) bzw. 600 authorized_keys sein.


    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.

  • Danke, das funktioniert! Warum muss ich den Pfad angeben? Es ist ja der Standardpfad.

    Es funktioniert auch ohne option -l username.

    Ob das wirklich der Standardpfad ist kannst du in deiner lokalen ~/.ssh/config sehen, falls existent.

    Bei mir sieht das z.B. so aus:

    Code
    Host *
        User me
        UseKeychain yes
        AddKeysToAgent yes
        IdentityFile /Users/me/.ssh/company_rsa

    Dass es bei dir auch ohne überhaupt eine Usernamen-Angabe geht, spricht dafür, dass du irgendwo einen Usernamen konfiguriert hast (oder wird root als Fallback genommen, wüsste ich nichtmal :D )

  • Hay,

    das kann zum Beispiel an den Rechten liegen. Das Verzeichnis und die Datei authorized_keys müssen dem User des Keys gehören und die Rechte 700 (.ssh) bzw. 600 authorized_keys sein.


    CU, Peter

    Danke. Verzeichnis und Datei gehören dem User und die Rechte sind 700 bzw. 600. Wie ich oben geschrieben habe, funktioniert es, wenn ich den Privaten Schlüssel explizit angebe.

  • Ob das wirklich der Standardpfad ist kannst du in deiner lokalen ~/.ssh/config sehen, falls existent.

    Bei mir sieht das z.B. so aus:

    Code
    Host *
        User me
        UseKeychain yes
        AddKeysToAgent yes
        IdentityFile /Users/me/.ssh/company_rsa

    Dass es bei dir auch ohne überhaupt eine Usernamen-Angabe geht, spricht dafür, dass du irgendwo einen Usernamen konfiguriert hast (oder wird root als Fallback genommen, wüsste ich nichtmal :D )

    Hallo Hecke29,


    eine solche Datei gibt es nicht in meinem Userverzeichnis auf dem Client. Dass ich den user-Namen nicht angeben muss, liegt wahrscheinlich daran, dass ich mich ja bei <username>@<server> anmelde.

  • Ob das wirklich der Standardpfad ist kannst du in deiner lokalen ~/.ssh/config sehen, falls existent.

    Bei mir sieht das z.B. so aus:

    Code
    Host *
        User me
        UseKeychain yes
        AddKeysToAgent yes
        IdentityFile /Users/me/.ssh/company_rsa

    Dass es bei dir auch ohne überhaupt eine Usernamen-Angabe geht, spricht dafür, dass du irgendwo einen Usernamen konfiguriert hast (oder wird root als Fallback genommen, wüsste ich nichtmal :D )

    Hab mir jetzt eine Datei config in .ssh mit dem angepassten Inhalt angelegt. Jetzt funktioniert einfach ssh me@myserver.de :)

    Danke.

  • Hallo,


    habe wie in dem Thread Serversicherheit empfohlen, das Webserversecurity Handbuch angeschaut. Habe gemäß der Anleitung ein Schlüsselpaar generiert auf meinem Clientrechner und den öffentlichen Schlüssel wie im Handbuch beschrieben ssh-copy-id auf den Server geladen. Dort liegt sie auch in dem Homeverzeichnis unter .ssh in der Datei authorized_keys.

    Der Artikel wurde gestern geändert. Da steht auch eine lokale Konfiguration der ssh_config weiter unten. Vielleicht hilft dir das bei den Einstellungen und beim Verständnis.


    Du kannst dann beispielsweise einfach "ssh hostname" im Terminal eingeben. Keine Hostnamen, kein Username, keine ID-Datei mehr notwendig.