Remote Poweroff/Shutdown

  • Hallo,


    ich möchte OMV über eine Batchdatei aus Windows heraus herunterfahren (poweroff/shutdown). Ich vermute, dass das möglich ist, aber ich habe trotz einiger Themen zu dieser Frage keine Lösung über Google gefunden.


    Ich habe hier OMV 2 auf einem BananaPi.

  • Hi,


    habe soetwas auf meinem Linux Router laufen.
    Das sollte aber auch mit Windows funktionieren.


    Der Ansatz ist, dass OMV einen SSH Key von deinem Client importiert:

    [GUIDE] Enable SSH with Public Key Authentication (Securing remote webUI access to OMV)


    Dann kannst du einen SSH Befehl direkt und ohne PW von deinem Client ausführen.
    Bei mir (Linux) sieht das so aus:


    ssh control@10.1.1.4 -i /root/.ssh/id_rsa sudo /sbin/shutdown -h now


    Wobei "control" ein OMV user ist, der SSH darf und in der sudoers Gruppe ist:


    Auszug aus /etc/sudoers
    # User privilege specification
    root ALL=(ALL:ALL) ALL
    control ALL=NOPASSWD: /sbin/shutdown


  • Erstmal Danke für deine Antwort und Sorry, dass ich mich erst jetzt dazu melde.
    Ich habe zwar mit einigen Tücken einen Benutzer mit einem öffentlichen Schlüssel angelegt bekommen, aber eine Passwortlose Anmeldung funktioniert nicht.


    Wenn ich deinen Steuerbefehl unter Windows ausführe, werde ich nach einem Passwort gefragt und werde dann rausgeschmissen.


    f:\z>ssh ssh-user@192.168.1.31 -i .\id_rsa sudo /sbin/shutdown -h now
    ssh-user@192.168.1.31's password:
    Could not chdir to home directory /home/ssh-user: No such file or directory
    /bin/dash: Permission denied


    Wenn ich den gleichen Befehl als root angebe, werde ich ebenfalls nach einem PW gefragt. Danach wird OMV aber heruntergefahren.




    f:\z>ssh root@192.168.1.31 -i .\id_rsa sudo /sbin/shutdown -h nowroot@192.168.1.31's password:


    Ich habe im Moment keine Idee, an welcher Stelle ich nach dem Fehler suchen soll.

  • Nachdem ich noch eine ganze Zeit dran rumgefummelt habe, denke ich schon, dass ich über den hinterlegten Key zur Anmeldung komme. Allerdings kommt jetzt ein neues Hindernis. Für mich sieht es so aus, als hätte der Benutzer "ssh-user" nicht die notwendigen Berechtigungen, um irgendwas auszuführen.


    Auf:
    plink ssh-user@192.168.1.31 -i f:\z\schl2.ppk sudo /sbin/shutdown -r now
    kommt:
    /bin/dash: Permission denied




    Hier meine /etc/sudoers


    Im OMV-GUI habe ich ssh-user den Gruppen ssh und sudo hinzugefügt.
    Irgendwie habe ich aber den Eindruck, dass das, was ich im GUI mache, nicht komplett umgesetzt wird. Es gibt z.B. kein Verzeichis "/home/ssh-user".
    Über Putty kann ich mich in einer Konsole als root anmelden. Wenn ich mich aber als "ssh-user" anmelden möchte (login ssh-user), dann kommt "/bin/dash konnte nicht ausgeführt werden: Keine Berechtigung"

  • Dann teste mal, ob du ohne den shutdown Befehl eine ssh Verbindung bekommst.
    plink ssh-user@192.168.1.31 -i f:\z\schl2.ppk
    Damit solltest du als der ssh.user auf die Konsole kommen.


    Dann kannst du
    sudo /sbin/shutdown -r now
    probieren.


    PS:
    Den ssh-user habe ich nicht in die Gruppe sudo hinzugefügt.
    Bei mir ist er in der Gruppe "root" drin.


    Ich weiss auch nicht, ob man diesen Hinweis ernstnehmen muss:
    # This file MUST be edited with the 'visudo' command as root.#

  • Wenn ich versuche mich ohne shutdown-Befehl anzumelden kommt:


    ###################
    plink ssh-user@192.168.1.31 -i f:\z\schl2.ppk
    Using username "ssh-user".
    Linux BaPi 3.4.108+ #1 SMP PREEMPT Mon Jan 4 22:29:22 CET 2016 armv7l



    ------------------------------------------------------------------------
    Welcome to Bananian Linux!
    For news and updates check: https://www.bananian.org
    Any questions? Read the FAQ first: https://www.bananian.org/faq



    Run 'bananian-config' to set up Bananian Linux
    Run 'bananian-update' to check for distribution updates
    ------------------------------------------------------------------------
    Last login: Sat Oct 22 02:03:52 2016 from 192.168.1.1
    /bin/dash: Permission denied
    ###################


    Die Anmeldung funktioniert also nicht.
    Ich habe den Benutzer aus der Gruppe "sudo" rausgenommen und zu "root" hinzugefügt, aber das ändert auch nichts.



    /etc/sudoers habe ich noch mal mit visudo geöffnet und abgespeichert. Das ändert aber leider nix.




    @Wolf
    Auf der Webseite wird auch plink empfohlen. Ich habe die dort genannten Parameter "-v -ssh" mit und ohne Passwort getestet, werde aber letztlich mit der gleichen Fehlermeldung rausgeworfen:



    #######################
    F:\Programme\PuTTy>plink -v -ssh ssh-user@192.168.1.31 -i f:\z\schl2.ppk
    Looking up host "192.168.1.31"
    Connecting to 192.168.1.31 port 22
    We claim version: SSH-2.0-PuTTY_Release_0.66
    Server version: SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u6
    We believe remote version has SSH-2 channel request bug
    Using SSH protocol version 2
    Doing Diffie-Hellman group exchange
    Doing Diffie-Hellman key exchange with hash SHA-256
    Host key fingerprint is:
    ssh-rsa 2048 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Initialised AES-256 SDCTR client->server encryption
    Initialised HMAC-SHA-256 client->server MAC algorithm
    Initialised AES-256 SDCTR server->client encryption
    Initialised HMAC-SHA-256 server->client MAC algorithm
    Reading private key file "f:\z\schl2.ppk"
    Using username "ssh-user".
    Offered public key
    Offer of public key accepted
    Authenticating with public key "imported-openssh-key"
    Sent public key signature
    Access granted
    Opening session as main channel
    Opened main channel
    Allocated pty (ospeed 38400bps, ispeed 38400bps)
    Started a shell/command
    Linux BaPi 3.4.108+ #1 SMP PREEMPT Mon Jan 4 22:29:22 CET 2016 armv7l



    ------------------------------------------------------------------------
    Welcome to Bananian Linux!
    For news and updates check: https://www.bananian.org
    Any questions? Read the FAQ first: https://www.bananian.org/faq



    Run 'bananian-config' to set up Bananian Linux
    Run 'bananian-update' to check for distribution updates
    ------------------------------------------------------------------------
    Last login: Sat Oct 22 02:18:09 2016 from 192.168.1.1
    /bin/dash: Permission denied
    Server sent command exit status 1
    Disconnected: All channels closed
    #########################



    An der Meldung "Last login: ..." erkennt man, dass eine Anmeldung stattgefunden hat. Ich vermute, dass der Benutzer keine ausreichenden Rechte hat. Er hat ja nicht mal ein Home-Verzeichnis.


    Ich denke, es ist besser, wenn ich zuerst mal ein Backup erstelle, bevor ich mir hier alles zerlege. Wie ich ein Backup sinnvoll machen kann, weiß ich noch nicht.




    EDIT:
    Unter "Zugriffskontrolle -> Benutzer -> Einstellungen -> Heimatverzeichnis des Benutzers" steht der Schalter auf deaktiviert.
    Könnte das der Grund für die Fehlermeldungen sein?
    Wenn ich ihn aktiviere, will OMV einen Speicherort angegeben haben. Es bietet mir dazu aber nur die Festplatte an, die am BananaPi angeschlossen ist. Die Daten von OMV sollen aber nur auf der SD-Card liegen. Ist das möglich?

  • Unter "Zugriffskontrolle -> Benutzer -> Einstellungen -> Heimatverzeichnis des Benutzers" steht der Schalter auf deaktiviert.
    Könnte das der Grund für die Fehlermeldungen sein?

    Sehr gut möglich.
    Ausprobieren.


    Wenn ich ihn aktiviere, will OMV einen Speicherort angegeben haben. Es bietet mir dazu aber nur die Festplatte an, die am BananaPi angeschlossen ist.

    Das macht doch nix. Ist doch nur das Home VZ. Kannst ja dann mal schauen, was da so für Daten reinkommen.

  • Hallo Zonk


    1. Must du den plink ordner in das Verzeichnis kopieren : C:\Program Files (x86) ((x86)ist nur bei 64bit)
    2.


    3.Erstelle eine neue txt


    plink -v -ssh root@192.168.1.5 -pw dein-password reboot


    und das ganze speichern unter Reboot.bat


    Das ganze war ja nicht so schwer?


  • Sehr gut möglich.Ausprobieren.


    Werde ich machen. Da ich aber nicht weiß, was OMV dann macht und da ich bisher kein gescheites Backup der SD-Card hatte, wollte ich zuerst eins machen. Unter Windows mache ich das seit langem mit Acronis True Image Home. Das kommt mit ext4 und SD-Cards aber nicht klar. Mehrere Partitionen auf einer SD-Card kapiert Windows nicht. Ein Backupprogramm mit GUI habe ich für Linux nicht gefunden. Clonezilla hat die SD-Card nicht gefunden und hat sich einfach beendet. Ich hoffe echt, dass das nur die Anfangsschwierigkeiten sind. Im Moment tue ich mich mit Linux richtig schwer und stolpere von einem Problem zum nächsten. Am Ende habe ich ein Image mit Win32 Disk Imager erstellt bekommen, welches ich mit dd verkleinern konnte und dann auf eine andere SD-Karte kopieren konnte.


    Wirklich weiter bin ich damit aber auch noch nicht, denn nun findet GParted Fehler auf der SD-Card und e2fsck behebt sie nicht, obwohl es angibt, das zu tun.
    Es ist wirklich zum Haare raufen.


    Quote


    Das macht doch nix. Ist doch nur das Home VZ. Kannst ja dann mal schauen, was da so für Daten reinkommen.


    Ich möchte schon das System und die Daten sehr strickt trennen, damit ich die Festplatte und die SD-Card jederzeit problemlos tauschen kann. Wenn ich einen Teil des Systems auf der HDD hätte, dann wäre das Erstellen eines Backups noch komplizierter.



    1. Must du den plink ordner in das Verzeichnis kopieren : C:\Program Files (x86) ((x86)ist nur bei 64bit)
    2.[Path-Variable]
    3.Erstelle eine neue txt
    plink -v -ssh root@192.168.1.5 -pw dein-password reboot


    Danke für die Variante mit PW. Das werde ich zumindest temporär benutzen, bis ich es mit hinterlegtem Key schaffe.
    Ich benutze hier XP. Ich schätze Schritt 1. ist nur für neuere Windowsversionen notwendig.
    Schritt 2. vermeide ich so oft es geht, denn je größer der Pfad ist, desto unübersichtlicher wird es. In Batchdateien übergebe ich lieber einmal den gesamten Pfad zum Programm an eine Variable und benutze diese.

  • Ich habe nun den Schalter "Zugriffskontrolle -> Benutzer -> Einstellungen -> Heimatverzeichnis des Benutzers" aktiviert und ein /home-Verzeichnis auf einer separaten Partition angegeben. OMV hat auch gleich mehrere Benutzer dort eingetragen und ein paar Dateien dorthin kopiert.
    Eine Anmeldung klappt dennoch nicht, bzw. nach wie vor nur als root.


    Wenn ich als root angemeldet bin und ich dann "login ssh-user" plus Passwort angebe, werde ich mit der gleichen Fehlermeldung rausgeschmissen, wie direkt per ssh.


    Ich habe danach etliche Beiträge zu dem Thema gelesen. Viele deuten darauf hin, dass die Berechtigungen für unterschiedliche Dateien falsch gesetzt sind. Da sich die Beiträge meist auf andere Versionen und Distributionen beziehen, sind hier teilweise die Dateien nicht mal vorhanden, sodass ich die Lösungsvorschläge nicht 1:1 übernehmen kann.


    Nun stehe ich quasi wieder am Anfang.
    Wenn eine Datei-Berechtigung nicht stimmt, dann ist das für mich wie eine Nadel im Heuhaufen. Selbst wenn ich ein funktionierendes Linux als Vorlage hätte, wüsste ich nicht, wie ich die Berechtigungen dateiweise vergleichen könnte.


    Eine Idee nach Anfängermethode hätte ich noch: Ein Backup auf eine andere SD-Card packen und dann nach und nach die Ordner im Hauptverzeichnis jeweils rekursiv auf '777' setzen und nach jedem Ordner einen Login probieren. Wenn es dann klappt, wieder das Backup zurückspielen und dann nur die Unterordner der Reihe nach auf '777' setzen, bis ich den oder die Übeltäter gefunden habe.
    Wirklich prickelnd ist das aber natürlich nicht.


    Gibt es eine Logdatei, die beim Anmelden eines Benutzers geschrieben wird?
    Ich könnte diese mit einer Logdatei eines vorhandenen Linux Mint vergleichen. Vielleicht ergibt sich daraus ein nützlicher Hinweis.


    Oder gibt es vielleicht irgendwo eine zentrale Konfigurationsdatei, in der die Anmeldung einer Benutzers grundsätzlich verweigert werden kann oder in der man sie freischalten muss?


    Gibt es unter bananian ein tracetool, wie z.B. strace oder ltrace?

  • Hallo,


    ein Problem bei der Umsetzung war, dass ich mich nicht als User (außer root) anmelden konnte. Das habe ich inzwischen geklärt. Für das Verzeichnis /lib war nicht root, sondern ein User als Besitzer eingetragen. Den User hatte ich selbst für den Zugriff auf Netzwerkfreigaben durch Windows-Clients erstellt. Die Besitzübernahme habe ich allerdings nicht selbst oder zumindest nicht absichtlich eingerichtet.
    Bei meinem ursprünglichen Vorhaben, OMV remote herunterzufahren, bin ich mangels Zeit noch nicht weitergekommen. Das werde ich demnächst noch mal in Angriff nehmen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!