Wie mache ich das den auf der Vu+# 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
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
-
-
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 -
-
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 -
Soweit funktioniert es.
Nur muss ich nach dem import immer noch das Passwort eingeben.
Das wird dan diese Passphrase sein?!
Gibts den eine andere möglichkeit den raspi mittels vu auzuschalten? -
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... -
Mad_Mike schrieb:
# Auf dem Raspberry PI
# In das Verzeichnis /tmp wechseln
pi@raspberrypi /tmp $ cat dmpubkey >> authorized_keys
authorized_keys muss in $home/.ssh liegenDieser Beitrag wurde bereits 1 mal editiert, zuletzt von Banana Joe ()
-
bei anderen nixen sind dann noch Rechte 644 nötig, sonst mag ssh das nicht
-
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! -
-
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 komischDieser 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:
Jetzt gehts komisch
Ja, immer wieder faszinierend: Kaum macht man's richtig, schon funktioniert's... -
-
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. -