Per SSH auf RasPi einloggen

  • Hallo zusammen,


    gerne würde ich in Kurbefehle einige Skripts mit „Skripte über SSH ausführen“ in den Kurzbefehle in Automationen integrieren.


    Ich habe mich noch nicht mit dem SSH Server beschäftigt.


    Folgender Hintergrdanke:


    Wenn ich über Kurzbefehle ein Skript ausführen lassen möchte, so geht dies in Automationen nicht, da immer die Meldung komme „Unbekanntes Gerät, zum Verbinden bestätigen“ oder so ähnlich. Nach dem Bestätigen bleibt der Zugang aber nicht gespeichert, sondern es kommt dann beim nächsten Mal wieder die Meldung.


    Wenn ich in den Kurzbefehle statt Passwort-Anmeldung evtl. die SSH-Anmeldung verwende, so möchte ich ausprobieren, ob es über diesen Weg möglich ist, das Skript auszuführen.


    Wie starte ich also den SSH-Server (wenn er noch nicht läuft) oder wie schaue ich, ob die dieser schon installiert ist?


    Und dann sollte ich natürlich einen SSH-Schlüssel generieren, den ich in den Kurzbefehl mit eintrage.....

  • Wie starte ich also den SSH-Server (wenn er noch nicht läuft) oder wie schaue ich, ob die dieser schon installiert ist?

    Auf welchem Gerät?

  • Auf nem RasPi 3 mit Buster

  • Da wird der schon laufen. Leicht zu testen:


    ssh pi@raspi-ip-adresse


    Kommt eine Aufforderung zum Einloggen, läuft der ssh-Server. Kommt die Meldung connection refused, läuft er nicht.

  • Da wird der schon laufen. Leicht zu testen:


    ssh pi@raspi-ip-adresse


    Kommt eine Aufforderung zum Einloggen, läuft der ssh-Server. Kommt die Meldung connection refused, läuft er nicht.

    ok, werd ich mal testen, und woher bekomm ich dann den SSH-Schlüssel?

  • Einloggen als pi. Dann:


    ssh-keygen

    Alle auftretenden Fragen, auch die nach einem Passwort, einfach mit der Entertatste beantworten. Kein Passwort vergeben.


    Dieser Befehl erzeugt zwei Schlüssel. Der eine heißt .ssh/id_rsa, der andere .ssh/id_rsa.pub. Letzterer ist der, den du auf dem Gerät benötigst, von dem aus du sich zu deinem Raspi verbinden willst. Den kannst du dir mit cat .ssh/id_rsa.pub anzeigen lassen, markieren, kopieren und irgendwo einsetzen, wobei kein Zeilenumbruch darin vorkommen darf.

  • sschuste


    Top, ich danke für die prompte Beantwortung 👍👍


    Bin mal gespannt, ob es mir damit gelingt, per Kurzbefehl das Skript aufzurufen......

  • Per Kurzbefehle ist es für mich nicht logisch, was ich machen soll.


    Ich dachte, ich könnte den generierten Schlüssel eingeben, statt dessen habe ich nur folgende Ansicht:





    Geht es hier anders herum? Kurzbefehle gibt nen Schlüssel vor und dieser muss auf dem Pi hinterlegt werden?

  • Ähm, ich hab's gerade mal ausprobiert und kapier's auch nicht. Aber mit den Kurzbefehlen tu ich mich eh schwer - ich bekomme damit gar nichts hin und kapier auch die Syntax nicht so richtig. Ich schätze, das werde ich mal googeln müssen.


    Ich Depp. Du musst auf dem iPhone den öffentlichen Schlüssel teilen und irgendwie auf das Zielgerät bringen. Dort hängst du ihn dann an an die Datei authorized_keys.


    Willst du auf dem Mac was ausführen, beispielsweise open -a Safari http://www.google.com, dann hängst Du den Key an die Datei /Users/Kohle_81/.ssh/authorized_keys. Also Terminalfenster öffnen und dann:

    nano .ssh/authorized_keys


    Wist du auf dem Raspi etwas ausführen, dann kommt das nach /home/pi/.ssh/authorized_keys. Also einloggen als pi und dann:

    nano .ssh/authorized_keys


    Achtung: es dürfen keine harten Zeilenumbrüche in den Keys vorkommen, nur zwischen verschiedenen Keys! Hier ein Beispiel mit vier Keys:

    Code
    ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAj5dEtZa/pDNOObGkB5pBFwqlRej2xf5SQbc71QNdNA5PB8vcxYJw5BcTVhcSnArNJoRxdQ60Fvcf1jLPeO45XK9mDr2COmAJFu8Ksqci0rATcBjEHOELSZyOzmcBVXZVgQF2RDxOqLd9srdW064LQGxQeFFaeLh8ygJ3bGPqIrU=
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMFqlwaJXv5dSqcNAdrFHyLZxP2J+ukJvojacKZUexJ/v5ZL/vwVKVnwulFYBpHiBf4KzTdwvDsK16aTdEYfjhy/VR82Tdew/D70vvphyTZsUmPQtGHjx7CYPTkidNilkLYFW6n5yxbXJ+HTaA47o5bgu4Z15wWIuA7QJ2oUEK3XPkOGYUO1coMM0mGlneIZOeBWYDhXgMK/Ex40q1jBsABCCHOecPqjC/MFmlZq88zfcbq6huaD03v+pEz+l7aqyzRf8K7ck7PAjL5/f7S5qNWfoOS/TzVEF/6qa7E5FY7IIfwbhc1zzJKHBq1sTOJOsixdbO3GHIMahLzhNdWUyD pi@homepi
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEGowEhS+EKkCppa7vLU6h6N2W8Sca2lhGPw1epm6M/zG0GErHWGnRFH+qH7ioYjEdqHA6SPVATqP/YEinjWNfdox8DjrU3NF2AFyeZMYV9konpG/qqe7qzewmH68ms+iAE85b/CBOxye2xWpyak8nJk8bIWGTHqyjyrfitnegd8HsR799fRVAgCnHewsv/zMlEDG/rnKerJ9u5GkV10zTqNAOJry+y8HzBdzYsZvUIAFyYTc5RwX71oYGWSnTqo9HJZl+Pvn8CTdTXKVfitq1NFEHL+VXsZHAefW4Qg/Kj3k/5w9nK45/FCVwYAAPZHMvn37pRKdkcjaNlfXuDm71 homebridge@homepi
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCTjv+RmXEravxysfBy/+g0aFsEF6LGrhYpumm5HCOWohOuzWPzD/u3sqZRtwU8SO5TTSCN1OFWEahI2XYbLl6I8+ZUC5x+NFACQnFwiVIhGjttRBC3PswiuzF7XUu2a/A47qjLPm0RH+HrM8UpqaT8ZSdd/u2KIpNe5xRxkAJ/JwUS+eu/hj+LCI9bvc6paFfEpj+bnSKQC5H8Ij2+Zk/U6RrcJ3qMPNj0SFRai4mN3ilRjEoINvB718lPRTsexGgCqwX63B0gMmIe02u/FT4VP598leNZORgsEiXhjc5MI8eAIf3sKAB7wqMUwvODIp1F3GHYAjSc9iE9WUBSj8UJ Kurzbefehle auf sschuste's iPhone

    Der letzte ist der vom iPhone.


    Stefan

    2 Mal editiert, zuletzt von sschuste ()

  • Ist es denn zwingend erforderlich, dass du dich mit dem SSH-Key am Raspberry anmeldest? Ich hab es gerade mal getestet und es funktioniert auch wunderbar, wenn man einfach das Kennwort (bei Authentifizierung Passwort statt SSH-Schlüssel wählen) eingibt.


  • Ist es denn zwingend erforderlich, dass du dich mit dem SSH-Key am Raspberry anmeldest? Ich hab es gerade mal getestet und es funktioniert auch wunderbar, wenn man einfach das Kennwort (bei Authentifizierung Passwort statt SSH-Schlüssel wählen) eingibt.


    Wenn ich den Kurzbefehl in der App ausführe, dann klappt einwandfrei.


    Sobald der Kurzbefehl in einer Automation drin ist, wird nicht ausgeführt, oder funktioniert es bei dir?


    Bisher war mir dies als generellen Bug bekannt und ich wollte testen, ob der Bug auch über den SSH-Schlüssel besteht.....

  • Ah, sorry! In einer Automation hab ich es nicht getestet :S

  • Ich habe heute unter iOS 13.3.1 mal wieder diese Funktion in Kurzbefehlen getestet und nun kann ich das alexa_remote_control.sh Skript über Kurzbefehle ausführen lassen.

    Es hat in persönlichen oder auch Haus-Automationen funktioniert.


    Einwandfreie Sache, nun überlege ich mir, mich von Alexa mit individuellen Informationen wecken zu lassen.

    Auf die schnelle sollte klar die Uhrzeit, Wetter und Temperatur angesagt werden. Vielleicht ist es möglich, Kalendereinträge vorlesen zu lassen, Geburtstage mit einzubinden und so weiter....


    Ist gerade alles nur Theorie, aber das eine oder andere lässt sich definitiv realisieren 😜

  • Bei mir geht SSH leider immer noch nicht in Automationen trotz 13.3.1. Benutzt du Passwort oder Schlüssel ? Bin über jeden Tipp dankbar ;)

    Ich habe es per SSH geschafft

  • Darf ich das Thema nochmals hochholen?


    Damals lief es bei mir kurzzeitig über User und Passwort, jetzt leider nicht mehr. Hatte bis jetzt keinen Bedarf mehr danach.


    sschuste


    Ich habe im Kurzbefehl den ssh-Schlüssel generiert und diesen mit


    nano .ssh/authorized_keys


    eingefügt.


    Es funktioniert leider nicht, es kommt keine Meldung im Kurzbefehl, dieser hängt einfach nur nicht abgeschlossen fest und ich habe keinen Anhaltspunkt.......


    Was mir auffällt, vor dem Schlüssel in deinem Beispiel steht ssh-rsa, der kurzbefehl schlüssel beginnt mit ssh-edc....


    Könnte das auf etwas hindeuten?


    Oder habe ich noch etwas nicht freigegeben auf dem RasPi?


    Ich habe bisher lediglich im Kurzbefehl den Schlüssel generiert und wie oben abgespeichert......

  • Beziehungsweise noch die Frage, ob der Bug evtl. immer noch besteht und eine Automation generell noch nicht ausführbar ist???


    Läuft bei jemandem der Zugriff auf den RasPi oder Mac per Kurzbefehl?

  • Ich habe im Kurzbefehl den ssh-Schlüssel generiert und diesen mit


    nano .ssh/authorized_keys


    eingefügt.

    Das ist schon mal richtig, solange du den Key auf dem Rechner eingefügt hast, auf den du dich einloggen willst. Und das sieht dann wahrscheinlich ungefähr so aus:


    ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAj5dEtZa/pDNOObGkB5pBFwqlRej2xf5SQbc71QNdNA5PB8vcxYJw

    5BcTVhcSnArNJoRxdQ60Fvcf1jLPeO45XK9mDr2COmAJFu8Ksqci0rATcBjEHOELSZyOzmcBVXZVgQF2RDxOqLd9

    srdW064LQGxQeFFaeLh8ygJ3bGPqIrU=

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEGowEhS+EKkCppa7vLU6h6N2W8Sca2lhGPw1epm6M/zG0GErH

    WGnRFH+qH7ioYjEdqHA6SPVATqP/YEinjMNfdox8DjrU3NF2AFyeZMYV9konpG/qqe7qzewmH68ms+iAE85b/CBO

    xye2xWpyak8nJk8bIWGTHqyjyrfitnegd8HsR799fRVAgCnHewsv/zMlEDG/rnKekJ9u5GkV10zTqNAOJry+y8Hz

    BdzYsZvUIAFyYTc5RwX71oYGWSnTqo9HJZl+Pvn8CTdTXKVfitq1NFEHL+VXsZHAefW4Qg/Kj3k/5w9nK45/FCVw

    YAAPZHMvn37pRKdkcjaNlfXuDm71 homebridge@raspberrypi

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY+YzD8QTbDAjp8XYWEMOBSNgMahxiTdALI6juKXgWDi8GSd4E

    eKyyW8w5SC5It1wazkoXNjfEFZgwDRgnqW9ldFQyN5lm9gYRDDY4TrJ3wc0GFYZtWJ74IEQLVxH3U34m1lSQIhp9

    ywg1wNy1Jq/jKqxjsr40Px1HFn/QlYieSrtK+J/+ZAU9Jk15MbuRi4c6PgFGI3zdGgL2dGEjJiJ15K5QHwQgLFoR

    45AEQk1KaLP98iM9ox956j/uO6bzzX9dcJ3V1t8R/wEXPjvuXlac1XC9aAR9RrcIA78JXXJmRlsiWtqKXI3bWvqJ

    vgGH5GgjO/9drskP/zxup06egpKr Generated By Termius

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCTjv+RmXEravxysfBy/+g0aFsEF6LGrhYpumm5HCOWohOuzWPz

    D/u3sqZRtwU8SO5TTSCN1OFWEahI2XYbLl6I8+ZUC5x+NFACQnFwiVIhGjttRBC3PswiuzF7XUu2a/A47qjLPm0R

    H+HrM8UpqaT8ZSdd/u2KIpNe5xSxkAJ/JwUS+eu/hj+LCI9bvc6paFfEpj+bnSKQC5H8Ij2+Zk/U6RrcJ3qMPNj0

    SFRai4mN3ilRjEoINvB718lPRTsexGgCqwX63B0gMmIe02u/FT4VP598leNZORgsEiXhjc4MI8eAIf3sKAB7wqMU

    wvODIp1F3GHYAjSc9iE9WUBSj8UJ Kurzbefehle auf Stefan Schustereit’s iPhone


    Unten ist der Kurzbefehle-Key eingefügt. Insgesamt enthält das Beispiel vier Keys. Jede Zeile, die mit ssh-rsa beginnt, ist eine einzige Zeile und darf keine harten Umbrüche enthalten. Im obigen Beispiel sind harte Umbrüche drin, damit ich das hier besser darstellen konnte. Wenn man das Terminalfenster so weit aufzieht wie möglich, kann man Umbrüche auf die Schliche kommen.


    Dann musst du natürlich noch die richtigen Einstellungen machen: Hostname (beispielsweise 192.168.1.22), Port 22, den richtigen Benutzer (das ist der, dem du deinen Public Key gegeben hast, im folgenden Beispiel pi) und den Befehl (folgenden Beispiel ls -l).



    Das war's. Beim ersten Aufruf musst du einmalig den Key-Austausch zwischen dem Zielgerät (hier: ein Raspi) und deinem iPhone bestätigen. Der Kurzbefehl läuft jetzt durch und führt als Benutzer pi ein ls -l auf dem Raspi aus. Weiter passiert nichts, es gibt keinerlei Rückmeldung vom Kurzbefehl. Wahrscheinlich passiert aber trotzdem das, was passieren soll. Sehen kann man es so nicht. Was man sehen kann, ist das der Kurzbefehl abgeschlossen wird.


    Der im Beispiel verwendete ls -l-Befehl dient nur als Test. So kann man ihn erstmal zu nichts gebrauchen. Da ich mich mit den Kurzbefehlen nicht so auskenne, weiß ich nicht, wie man das Ergebnis des Befehles anzeigen lassen kann - er erzeugt ja eigentlich eine Liste aller Dateien, die im Homeverzeichnis des Benutzers pi liegen. Aber eigentlich will man aber ein Skript auf dem Raspi ausführen, das dann irgendwas macht.


    Man kann den Zugriff des Kurzbefehls in einem Log des Raspi sehen:

    tail -f /var/log/auth.log (abbrechen mit control-c)


    Jan 18 12:47:48 homepi sshd[548]: Accepted publickey for pi from 192.168.1.201 port 64199 ssh2: RSA SHA256:l/sBtSFaZrplpLRQK5Jnfp1/8DsEI8+2pJ5DMmJuvNE

    Jan 18 12:47:48 homepi sshd[548]: pam_unix(sshd:session): session opened for user pi by (uid=0)

    Jan 18 12:47:48 homepi systemd-logind[367]: New session c119 of user pi.

    Jan 18 12:47:49 homepi sshd[588]: Received disconnect from 192.168.1.201 port 64199:11: NMSSH: Disconnect

    Jan 18 12:47:49 homepi sshd[588]: Disconnected from user pi 192.168.1.201 port 64199

    Jan 18 12:47:49 homepi sshd[548]: pam_unix(sshd:session): session closed for user pi

    Jan 18 12:47:49 homepi systemd-logind[367]: Session c119 logged out. Waiting for processes to exit.

    Jan 18 12:47:49 homepi systemd-logind[367]: Removed session c119.


    Je nachdem, was auf dem Raspi noch so los ist, kann das schnell wegscrollen.

  • sschuste


    Vielen Dank für deine genial ausführliche Antwort. Dank deines Screenshot habe ich herausgefunden, dass ich zunächst einen public rsa generieren muss, ich hatte es immer mit dem ed255..... key versucht, da ich nie auf „neuer Schlüssel“ geklickt hatte.


    Ich werde heut Abend nochmals testen 👍👍

  • sschuste


    Zapperdi, bei mir wills nicht.


    Es erscheint im Kurzbefehl folgende Meldung, siehe Screenshot unten.


    Was habe ich gemacht:


    Da ich gestern den Ordner .ssh gelöscht hatte, habe ich diesen neu angelegt.


    Mkdir .ssh


    Dann habe folgende Datei angelegt:


    nano .ssh/authorized_keys


    und den public key aus den kurzbefehlen eingefügt und die Datei abgespeichert.


    Der Inhalt sieht (abgeänderter key) so aus:


    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzGiIBUoXuoFv6WG0fSGqk3aUsjdYmAJGAQN3aVLPOwkUxUQgt3SYkI2tKJLsheqrnj+/XcFrA3YGXdp1KjTYMxLLtDVKxxxxx+es9DGUrFvyBMGTk0Uu4fa6oo9XCfSPpsv8y5tLB7uPYCig0a1iabRkXcFrA3YGXdp1KjTYMxLLtDVKx9RszPBgHhU/XfxLajj4NiJguI5LQUw9qvqFkH4sJba5D1BoiYHuvnZZY3UPh/MpGqXU/4JEdzhpP7fhiQXUnwjjEE4Uomi8TTkbe4XGxtxwmlkkfoclvwVmMAtc40ZhI0qObw7VDNg3z66efJWZgpVFjHqsWLCMmVvIy8luFXYuTUIPrFxL/wBXCLI32QSmT Kurzbefehle auf iPhone



    Wenn ich mich mit Passwort einlogge über den Kurzbefehl, dann läuft es durch. Also die Verbindung wird aufgebaut und ich sehe die Ausgabe im Kurzbefehl. Habe einfach als Befehl node -v genommen und wurde mir auch das Ergebnis ausgegeben 🤷‍♂️🤷‍♂️🤷‍♂️