Authentifizierung zwischen Vu+ und Raspberry auf zertifikatsbasierende Authentifizierung umgestellen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Authentifizierung zwischen Vu+ und Raspberry auf zertifikatsbasierende Authentifizierung umgestellen

      # Auf der Dreambox folgendes ausführen

      # In das Verzeichnis .ssh wechseln

      root@dm7020hd:~/.ssh# dropbearkey -t rsa -f mykey -s 1024

      root@dm7020hd:~/.ssh# dropbearkey -y -f mykey > dmpubkey

      root@dm7020hd:~/.ssh# scp dmpubkey MYUSERNAME@IP_RASPBERRY_PI:/tmp/





      # Auf dem Raspberry PI

      # In das Verzeichnis /tmp wechseln

      pi@raspberrypi /tmp $ cat dmpubkey >> authorized_keys





      # Auf der Dreambox

      # In das Verzeichnis .ssh wechseln

      root@dm7020hd:~/.ssh# ssh -i mykey pi@IP_RASPBERRY_PI
      Wie mache ich das den auf der Vu+
    • Ich habe das PubKey-Verfahren für ssh auf meiner vu+ als Server im Einsatz.

      Aber ich verstehe Deine Frage nicht. Kannst Du mal bitte deutlicher formulieren, was Du erreichen willst?
      TNX
    • Soll sich die Vu auf dem Raspberry anmelden oder andersherum? Und für was einen Zweck möchtest Du das tun !! Ein Mount zwischen den Geräten wäre ggf. sinnvoller wenn es um gemeinsam nutzbare Ordner geht?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Eisblume ()

    • Ich will mit einem Tastendruck auf der Vu Fernbedienung.
      Den Raspi herunterfahren lassen.

      Da hatte ich eine Anleitung gefunden, aber nur für Dreamboxen.(siehe oben)

      Dort greit er von der Dream auf ein script zu das auf den Raspi liegt.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Mad_Mike ()

    • Wie möchtest Du denn das Problem lösen, dass für die Verwendung des privaten Schlüssels eine Passphrase eingegeben werden muss, welche vor Diebstahl des Schlüssels schützen soll? Oder ist das in Deinem Kontext nicht relevant?

      However: Obiges Verfahren scheint doch plausibel zu sein (inkl. dropbear) und ich würde erwarten, dass das soweit funktioniert - ohne es ausprobiert zu haben. Was ist denn Dein konkretes Problem?

      Falls Du dich mal grundsätzlich über das Verfahren informieren möchtest, kann ich Dir das hier empfehlen:
      wiki.linux-club.de/opensuse/Ei…n_von_public_keys_mit_ssh
      wiki.linux-club.de/opensuse/Ssh-agent
    • Mad_Mike schrieb:

      Nur muss ich nach dem import immer noch das Passwort eingeben.
      Das wird dan diese Passphrase sein?!

      Von welchem 'import' sprichst Du?

      Ich empfehle Dir zum besseren Verständnis, die von mir referenzierten Seiten zu lesen. Du hast doch das Schlüsselpaar selbst erzeugt und musst doch wissen, ob und welche Passphrase Du verwendet hast.

      Um dieses Ziel zu erreichen, hast Du IMHO mehrere Möglichkeiten:
      1. manuelle Eingabe der Passphrase bei jeder Nutzung. Das macht mit einer Fernbedienung aber wahrscheinlich weder Spaß noch Sinn, denn eine Passphrase ist keine PIN.
      2. manuelle Eingabe der Passphrase nur ein einziges Mal pro Sitzung (ssh-agent auf der vu+). Hier ist mir derzeit unbekannt, ob ssh-agent für openembedded paketiert und somit verfügbar ist.
      3. Passphrase liegt in einer Datei und wird von einem Script als Parameter übergeben
      4. keine Verwendung einer Passphrase

      Der Security-Level sinkt natürlich mit jeder Stufe. Du hast die Wahl...
    • Funktioniert bei mir irgendwie nicht, er frägt immer noch nach dem Pw.

      Hab mal im Spoiler angehängt welche anleitung das ist.

      Spoiler anzeigen
      HowTo: Ambilight per Dreambox-Tastendruck starten und beenden!

      Hi



      anbei ein kurzes HowTo wie ich es bei mir realisiert habe, Ambilight per Tastendruck auf der Fernbedienung zu starten

      und zu stoppen. Es sollten eigentlich mit jedem Image auf der Dreambox funktionieren.



      Ich möchte noch darauf hinweisen, dass
      ich kein Profi bin. Ich hab die Dinge alle mühsam zusammengesucht und
      versucht zu verstehen wie es funktioniert. Sofern jemand nicht
      weiterkommt versuche ich natürlich zu helfen. Ich kann aber nicht
      versprechen die richtige Lösung zu finden. Ich möchte euch lediglich
      zeigen, wie es bei mir funktioniert!




      1. Ihr benötigt das Plugin Quickbutton für die Dreambox. Das ermöglicht es eine der farblichen Tasten auf der Fernbedienung

      der Dreambox per langem Tastendruck mit einer Funktion zu belegen.



      2. Ich habe mir jeweils 2 Plugins gebaut. AmbiStart zum starten von Ambilight und AmbiStop zum beenden.

      • Dafür geht ihr per FTP oder Telnet/SSH auf die Dreambox in das Verzeichnis /lib/usr/enigma2/python/Plugin/Extensions
      • Dort legt ihr jeweils einen Ordner an für AmbiStart und AmbiStop
      • In jeden Ordner legt ihr eine leere Datei an und nennt sie __init__.py
      • Dann legt ihr eine weitere Datei an namens plugin.py mit folgendem Inhalt:






        Code: Alles markieren


        from Plugins.Plugin import PluginDescriptor

        from Screens.Console import Console



        cmd = "nohup /usr/script/ambi-start.sh"



        def main(session, **kwargs):

        session.open(Console,_("ambi-start.sh"),[cmd])





        def Plugins(**kwargs):

        return [PluginDescriptor(name="Ambilight-Start",
        description=_("execute /usr/script/ambi-start.sh"), where =
        PluginDescriptor.WHERE_PLUGINMENU, fnc=main),

        PluginDescriptor(name="Ambilight-Start", description=_("execute
        /usr/script/ambi-start.sh"), where =
        PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)]



      • Nun solltet ihr zwei Dateien in dem Ordner AmbStart haben. Eine __init__.py und plugin.py mit obrigem Inhalt
      • Nun wechseln wir in den Ordner AmbiStop und legen wieder einen leere
        _init__.py Datei an sowie eine plugin.py Datei mit folgendem Inhalt:






        Code: Alles markieren


        from Plugins.Plugin import PluginDescriptor

        from Screens.Console import Console



        cmd = "/usr/script/ambi-stop.sh"



        def main(session, **kwargs):

        session.open(Console,_("ambi-stop.sh"),[cmd])



        def Plugins(**kwargs):

        return [PluginDescriptor(name="Ambilight-Stop",
        description=_("execute /usr/script/ambi-stop.sh"), where =
        PluginDescriptor.WHERE_PLUGINMENU, fnc=main),

        PluginDescriptor(name="Ambilight-Stop", description=_("execute
        /usr/script/ambi-stop.sh"), where =
        PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)]



      • Wenn das soweit alles geklappt hat sind wir mit den Plugins fertig.
        Wie ihr vielleicht gesehen habt ruft jedes Plugin ein Shell Script auf.
        Welches sich auf den Pi anmeldet und Ambi startet bzw. stoppt. Diese
        müssen wir jetzt anlegen. Hierfür gehen wir auf der Dreambox in den
        Ordner /usr/scripts
      • Jetzt wird es etwas tricky! Weil wir den Befehl Ambi zu starten oder
        stoppen auf dem Pi ausführen, muss sich die Dreambox jedesmal auf den
        Raspberry per SSH einloggen. Hierfür wäre es doof immerwieder das
        Passwort eingeben zu müssen. Also habe ich bei mir die Authentifizierung
        zwischen Dreambox und Raspberry auf zertifikatsbasierende
        Authentifizierung umgestellt. Hierfür habe ich folgende Anleitung
        benutzt:






        Code: Alles markieren


        # Auf der Dreambox folgendes ausführen

        # In das Verzeichnis .ssh wechseln

        root@dm7020hd:~/.ssh# dropbearkey -t rsa -f mykey -s 1024

        root@dm7020hd:~/.ssh# dropbearkey -y -f mykey > dmpubkey

        root@dm7020hd:~/.ssh# scp dmpubkey MYUSERNAME@IP_RASPBERRY_PI:/tmp/





        # Auf dem Raspberry PI

        # In das Verzeichnis /tmp wechseln

        pi@raspberrypi /tmp $ cat dmpubkey >> authorized_keys





        # Auf der Dreambox

        # In das Verzeichnis .ssh wechseln

        root@dm7020hd:~/.ssh# ssh -i mykey pi@IP_RASPBERRY_PI



      • So! Wenn das anmelden auf dem Pi nun ohne Passwortabfrage
        funktioniert sind wir fast am durch! Jetzt müssen wir nur noch die
        Start- und Stop Scripte anlegen.
      • Wir sind immernoch im Ordner /usr/scripts auf der Dreambox
      • Hier legen wir eine Datei namens ambi-start.sh an mit folgendem Inhalt






        Code: Alles markieren


        #!/bin/bash



        echo "Ambilight starten..."

        /usr/bin/ssh -y -i /home/root/.ssh/mykey pi@IP_RASPBERRY_PI "sh /home/pi/ambi-tv-master/ambi-start.sh" < /dev/null



      • Zum beenden von benötigen wir das Script ambi-stop.sh mit folgendem Inhalt:






        Code: Alles markieren


        #!/bin/bash



        echo "Ambilight beenden..."

        /usr/bin/ssh -y -i /home/root/.ssh/mykey pi@IP_RASPBERRY_PI "sh /home/pi/ambi-tv-master/ambi-stop.sh"



      • Beiden Dateien noch per chmod 755 ambi-stop.sh bzw. start.sh die Rechte 755 verpassen.
      • Dann wären wir auf der Dreambox fertig!
      • Nun nur noch die Dreambox neustarten.

        Achtung! Bei mir kam es hier zu einem Greenscreen beim Neustart. Es funktionerte aber alles wie gewünscht.
      • Jetzt müssen nur noch ein Start- und Stop-Script auf dem Pi angelegt fertig.
      • Dafür gehen wir auf den Pi in das Verzeichnis /home/pi/ambi-tv-master
      • Dort legen wir ein Start Script namens ambi-start.sh an mit folgendem Inhalt:






        Code: Alles markieren


        #!/bin/bash

        sudo nohup /home/pi/ambi-tv-master/bin/ambi-tv --button-gpio 3 &



      • Im selben Ordner legen wir ein Stop-Script an mit dem Inhalt:






        Code: Alles markieren


        #!/bin/bash

        sudo killall ambi-tv



      • Das wars!
      • Jetzt müsst ihr nur noch auf der Dreambox in dem Modul Quickbutton
        das Plugin "AmbiStart" auf einen Taste legen z.B. grün und das Plugin
        "AmbiStop" auf die z.B. rote Taste.


      Ich hoffe es funktioniert bei jedem! Ich werde noch versuchen das etwas
      weiterzuentwickeln. Zum Beispiel möchte ich, dass bei Ausschalten der
      Dreambox Ambilight auch automatisch ausgeht. Weiter möchte ich die
      Ausgabe im TV Fenster vermeiden, die erscheint, wenn man Ambilight
      startet oder beendet.



      Für Tipps und Anregungen bin ich sehr dankbar!



      Gruß

      Holger
    • Banana Joe schrieb:

      Zitat von »Mad_Mike«
      # Auf dem Raspberry PI

      # In das Verzeichnis /tmp wechseln

      pi@raspberrypi /tmp $ cat dmpubkey >> authorized_keys



      authorized_keys muss in $home/.ssh liegen


      Öffne mal die /home/pi/.ssh/authorized_keys mit einem Editor
      Und halte Ausschau nach doppelten/alten Keys. GGf. entfernen, weil das gibt durcheinander.
    • Au weia. Ich an Deiner Stelle würde versuchen, die Komplexität zu reduzieren und das Ganze auf Einzelschritte aufzuteilen. Versuch doch erst mal, ob Du dich von der vu+-Box zum Pi per ssh connecten kannst und dabei die PubKey-Authentification funktioniert. Danach, ob die gewünschten Scripten manuell funktionieren und danach das große Ganze.
    • genau das hatte ich geamcht.
      Jetzt bin ich an dem Punkt mit dem ssh.

      Wenn ich alles so mache wie es dort steht muss ich trotzdem immer noch das passwort für den pi eingeben.
      Irgendwie haut da was nicht hin, und ich check ned was!
    • Poste bitte exakt das, was Du gemacht hast - Input und Output.

      Ausserdem:
      Auf dem Zielsystem (pi) mach bitte das hier (<userdir> entsprechend ersetzen):

      Quellcode

      1. ls -ltar <userdir>/.ssh
      2. cat <userdir>/.ssh/authorized_keys

      Auf dem Quellsystem (vu+) das hier:

      Quellcode

      1. ls -ltar /home/root/.ssh/
    • VU+
      cd /home/root/.ssh


      dropbearkey -t rsa -f mykey -s 1024
      Will output 1024 bit rsa secret key to 'mykey'
      Generating key, this may take a while...
      Public key portion is:
      ssh-rsa ... root@vuduo2
      Fingerprint: md5 ...

      dropbearkey -y -f mykey > dmpubkey

      scp dmpubkey pi@192.168.207.30:/tmp/


      Host '192.168.207.30' is not in the trusted hosts file.
      (fingerprint md5 ..)
      Do you want to continue connecting? (y/n) y
      pi@192.168.207.30's password:
      dmpubkey 100% 313 0.3KB/s 00:00

      PI
      cd /tmp

      cat dmpubkey >> authorized_keys

      authorized_keys und dmpubkey in /home/pi/.ssh kopiert

      (beide reboot)


      VU+
      cd /home/root/.ssh

      ssh -i mykey pi@192.168.207.30



      Jetzt gehts komisch

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Mad_Mike ()

    • so jetzt aber kommt schon das nächste Problem

      Vu+ in das Verzeichnis /usr/lib/enigma2/python/Plugins/Extensions
      Ordner angelegt "RaspiShutdown"
      leere Datei angelet mit dem Namen __init__.py
      weitere Datei angelegt namens plugin.py mit folgendem Inhalt:
      Spoiler anzeigen

      from Plugins.Plugin import PluginDescriptor
      from Screens.Console import Console

      cmd = "nohup /usr/script/raspishutdown.sh"

      def main(session, **kwargs):
      session.open(Console,_("raspishutdown.sh"),[cmd])


      def Plugins(**kwargs):
      return [PluginDescriptor(name="RaspberryPi-Herunterfahren", description=_("execute /usr/script/raspishutdown.sh"), where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main),
      PluginDescriptor(name="RaspberryPi-Herunterfahren", description=_("execute /usr/script/raspishutdown.sh"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)]


      Vu+ in den Ordner /usr/script gewechselt
      Datei namens raspishutdown.sh angelegt mit folgendem Inhalt
      Spoiler anzeigen

      #!/bin/bash

      echo "RaspberryPi Herunterfahren..."
      /usr/bin/ssh -y -i /home/root/.ssh/mykey pi@192.168.207.30 "sh /home/pi/RaspberryPiShutdown/raspishutdown.sh" < /dev/null


      Wenn ich das Script (raspishutdown.sh) ausführe funktioniert es.
      Wenn ich aber das Plugin ausführe kommt folgender Fehler:
      1_0_19_EF78_3F9_1_C00000_0_0_0.jpg
    • Mad_Mike schrieb:

      kannst du auch was zu meinen 2 Problem sagen?

      Ne, sorry. Wenn es hier um Linux-Standards geht, dann kann ich gerne helfen. Das hier aber ist applikationsspezifisch, das ist nicht meins - hier bin ich raus.

      Aber Du kannst ja mal prüfen, ob es die genannte Datei an dieser Stelle gibt und die notwendigen Berechtigungen für den verwendeten User gesetzt sind.
    • Berechtigungen sind 755

      wenn ich folgendes eingebe
      sh /usr/script/raspishutdown.sh
      kommt:
      : not found/raspishutdown.sh: line 2:
      RaspberryPi Herunterfahren...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mad_Mike ()