SSH Zugriff ohne Passwort

  • Hallo Forum Gemeinde,


    Ich möchte mich per SSH, ohne Eingaben meines User Passwortes, an meinem Rasperry Pi anmelden. (Windows 10 und RP3) Wenn ich den Standard SSH key verwende, ist alles in Ordnung.


    Im SSH Standardverzeichnis von Windows (.ssh) benutze ich einfach nur „ssh-keygen“ und erstelle mir den Standard key (id_rsa und id_rsa.pub) Das Ganze kann ich dann mit „ssh-copy-id pi@192.168.0.144“ auf meinen RP hochladen. Das klappt dann ohne Problem. Ich kann mich ohne Passwort auf dem RP anmelden.


    Allerding möchte ich gerne dedizierte Namen für meine keys verwenden.


    Wenn ich dann folgendes Versuche:


    ssh-keygen -f ./my_ssh_key_name


    und das Ganze mit:


    ssh-copy-id -i ./my_ssh_key_name.pub pi@192.168.0.144


    hochlade, wird sowohl die Datei „known_hosts“ als auch der public key auf dem RP in der Datei „authorized_keys“ angelegt. Aber das Anmelden ohne Passwort funktioniert einfach nicht. Ich muss es dennoch eingeben.

    Ich habe es auch schon mit dem Tool "Putty keygen" versucht aber das hat auch nicht geklappt.


    Meine Frage ist nun, ob jemand eine Möglichkeit kennt, wie man einen dedizierten public key mit eigenen Namen zum RP hochladen kann und diese dann auch funktioniert?


    Ich wäre über Hilfe wirklich sehr dankbar.


    Viele Grüße und noch einen schönen Abend 😊

  • Aber das Anmelden ohne Passwort funktioniert einfach nicht. Ich muss es dennoch eingeben.

    Wenn der Dateiname vom Standard abweicht (was bei dir der Fall) ist, muss der Name bei der Benutzung des Keys auf/mit dem Client, explizit angegeben werden. Hast Du das gemacht?

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

  • Hallo rpi444,


    hmmm, ehh Nein!
    OK, das wusste ich nicht, dass man dem RP noch mitteilen muss, das er eine detaillierte Datei verwenden soll.

    Naja, wenn ich jetzt genauer darüber nachdenke, klingt das schon irgendwie logisch. (**peinlich**)

    Wie macht man das denn bzw. kann ich das irgendwo nachlesen wie man das macht?


    Danke schon mal für Deinen hilfreichen Hinweis.


    Viele Grüße...

  • Wie macht man das denn bzw. kann ich das irgendwo nachlesen wie man das macht?

    Ich weiß nur wie man das in Linux (oder gleichwertig) mit dem ssh-Client macht. In der Kommandozeile mit:

    Code
    -i </Pfad/Dateiname>

    oder/und in der config des ssh mit:

    Code
    IdentityFile </Pfad/Dateiname>

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

  • Mit man ssh lässt sich das nachlesen:

  • Mit der ssh_config kann man eine Benutzerdefinierte Konfiguration festlegen.

    Um den PrivateKey zu bestimmen, muss man IdentityFile /home/userName/.ssh/id_rsa mit angeben.


    Beispiel:



    Die .ssh/config sieht dann so aus:

    Code
    Host 123
        port 22
        user TEST
        hostname x.y.z.40
        IdentityFile /home/andre/.ssh/hetzner_id_rsa

    *) x, y, z dient zur Verschleierung meiner Server-IP. Ich habe schon genügend Bots...


    Wenn unter Windows der ssh-Dienst identisch ist, sollte auch die Konfiguration möglich sein.

    Unter Linux klappt es jedenfalls und ich nutze das schon seit Jahren.

    Keine Lust jedes Mal einen langen Namen einzugeben.


    Wenn ich mich als root einloggen will, gebe ich einfach ssh hetzner ein. Wenn ich einen anderen user will, dann halt z.B. ssh public@hetzner. D.h. der user in der Config wird dann durch angebe des anderen users einfach überschrieben. Total praktisch.

  • Hallo alles zusammen,


    erst mal vielen Dank dass ihr mir helfen wollte. Aber es klappt bei mir immer noch nicht. Ich denke ich habe da eventuell noch etwas nicht ganz verstanden. Ich denke die Texte hier sind auch auf Linux erklärt, oder?


    Eine Frage habe ich vorab. Ich habe auf meinem Windows Rechner z.B. mehrere keys. Auf meinem Raspberry Pi benötige ich lediglich die Datei „authorized_keys“ im Ordner „/home/pi/.ssh“. In dieser Datei muss mein public key hinterlegt werden, richtig? Das ist alles. Oder benötige ich auch auf dem Raspberry Pi eine Config Datei? Ich frage deshalb nach, weil ich mir nicht so ganz sicher bin und ich würde gerne meine Fehler Stück für Stück ausschließen. Wenn ich richtig liege, kann ich die RP Seite schon mal abhacken. Auf dem RP habe ich also nur die Datei "authorized_keys" mit einer einzigen Zeile. Darin steht der public key von meinem Windows Rechner. Es müssen auch keine speziellen Rechte vergeben werden und beim erstellen der ekys auf dem Rechner benöitge ich KEINE spezielle bit Länge wie 1024, 2048 oder 4096.


    Ich habe das soweit verstanden, dass ich auf meinem Windows Rechner eine config Datei benötige in der festgelegt wird, zu welchem Host, ich welches Identfile benötige. Meine config Datei auf dem Windows Rechner sieht in meinem Verzeichnis „~/.ssh“ so aus:


    Host MyRP


    HostName 192.168.0.144


    User pi


    PubkeyAuthentication yes


    Identitiesonly yes


    IdentityFile ~/.ssh/my_ssh_key_name


    Darf da alles Rechtsbündig in der Datei stehen, oder darf dies nur die erste Zeile sein und die restlichen müssen eingerückt sein?


    DeaD_EyE. Danke für Deine Zeilen. Am Schluss schreibst Du den Pfad des IdentityFile in die config Datei. Anhand von /home/…. schließe ich daraus, dass Du das auf eine Linux Maschine machst? Bei Windows gibt es ja kein „home“ Verzeichnis. Das ist der Grund, weshalb ich jetzt unschlüssig bin ob solch eine config Datei auch auf dem RP sein muss.


    Danke auch für Deinen interessanten Hinweis am Ende.


    Viele Grüße an alle

  • Das ist der Grund, weshalb ich jetzt unschlüssig bin ob solch eine config Datei auch auf dem RP sein muss.

    Nein, auf dem PI muss solch eine config nicht sein, denn auf dem PI hast Du die sshd_config, für den openssh-server (sshd).

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

  • Hallo rpi444,


    danke schon mal für Deine Rückmeldung. So kann ich zumindest man eine Fehlerquelle auf dem RP ausschließen.

    Das Hilft ja auch schon mal... :)


    Viele Grüße und einen schönen Abend

  • Hallo alles zusammen,


    ich noch mal.


    Nur zur Info…ich habe es jetzt hinbekommen. Ich schreib gleich noch mal was ich gemacht habe.


    Bis gleich…

  • So, dank rpi444 war ich mir jetzt sicher, dass ich den Fehler nicht au dem RP suchen muss.


    Es hat bei mir eigentlich alles gepasst. Ich habe nur immer, um zu testen ob ich mich jetzt ohne Passwort anmelden kann, folgendes in der Git bash eingegeben:


    ssh pi@192.168.0.144


    So wurde ich immer aufgefordert das Passwort einzugeben.


    Dann habe ich es mal mit dem Host (-name) probiert. In meinem Beispiel oben wäre das dann:


    ssh pi@MyRP


    Dann klappt das Ganze plötzlich ohne Passwort.


    Vielen Dank für Eure Hilfe. Jetzt habe ich wieder einiges dazu gelernt.


    Allen ein schönes Wochenende und viele Grüße. ;)