Herunterfahren der Nas via ssh/batch

Status
Für weitere Antworten geschlossen.

allnas

Benutzer
Mitglied seit
16. Dez 2013
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Hi,:)
weil schon öfter die Frage nach einer Möglichkeit aufgekommen, wie sich die Nas über ein Batch Script Herunterfahren lässt, habe ich mal eine Anleitung dazu erstellt!

1. Man benötigt die Kommandozeilenversion von Putty, welches plink.exe heißt:
http://the.earth.li/~sgtatham/putty/0.63/x86/plink.exe

2. Man erstellt zwei Textdokumente und nennt Sie befehle.txt und herunterfahren.txt

3. In die Datei Herunterfahren.txt schreib man folgende Zeile
plink -ssh -pw "Passwort" root@192.168.168.100 -m befehle.bat
"Passwort" müsst ihr durch euer root Passwort ersetzen und die Ip-Adresse ändern, root Passwort = admin Passwort
Anschließend als herunterfahren.bat abspeichern!

4.In die befehle.txt schreibt ihr:
shutdown -h now
Anschließend als befehle.bat abspeichern!

5.Beachtet das der ssh Zugang in eurer Diskstation aktiviert ist und sich die herunterfahren.bat, befehle,bat und die plink.exe in einem Ordner befinden!

6.Wenn ihr jetzt einen Doppelklick auf die Herunterfahren.bat macht fährt eure Diskstation herunter!

7.Viel Spaß, bei Fragen könnt ihr diese gerne hier stellen!

Gruß
Simon
 

tops4u

Benutzer
Mitglied seit
12. Sep 2013
Beiträge
126
Punkte für Reaktionen
0
Punkte
16
Sollte auch ohne das Bat File (befehle.bat -> was übrigens auch nicht .bat heissen muss/sollte) gehen indem Du das Kommando einfach hinten anhängst. Wenn Du brav mit Keys arbeitest musst Du auch nicht Dein Passwort verewigen (Pageant) ;-)
 

allnas

Benutzer
Mitglied seit
16. Dez 2013
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Wie funktioniert Pageant?
 

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
In meiner Batch-Datei für das Ausschalten der DS steht lediglich folgender Befehl:
Rich (BBCode):
plink -load diskstation /sbin/poweroff
Voraussetzungen, dass das funktioniert:
- ssh - Zugang mit Schlüssel (Passwortzugang muss nicht unbedingt abgeschaltet sein)
- in putty eine Session speichern mit dem Namen 'diskstation'

plink verwendet die putty-Session 'diskstation' und führt damit den dahinterstehenden Befehl aus.

Wenn man den ssh-Zugang mit Schlüssel nicht einrichten möchte, lautet der Befehl
Rich (BBCode):
plink -load diskstation -pw StrengGeheim /sbin/poweroff
In diesem Fall muss in der putty-Session auch der Benutzername gespeichert sein (Host Name or IP Address: root@192.168.xxx.xxx)
 

fwka01

Benutzer
Mitglied seit
25. Mrz 2016
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hallo,
nachdem ich heute das Update auf den DiskStation Manager 6.0 installiert habe, funzt das herunterfahren Script leider nicht mehr.
Ich erhalte die Fehlermeldung:
Access denied
root@192.168.178.39's password:

Ich kann jedoch kein Passwort im Dos-Fenster eingeben.

Da ich nur das Update installiert und sonst keine Änderungen am Setup vorgenommen habe, muss es irgendwie mit dem Update zu tun haben.

Hat jemand einen Tipp?

Vielen Dank und Grüße,
Thomas
 

ringli

Benutzer
Mitglied seit
09. Mai 2015
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Ich habe das selbe Problem. Inzwischen habe ich schon Tipps gefunden das man mit "sudo" arbeiten soll. Allerdings weiß ich nicht wo ich "sudo" in der im ersten Beitrag genannten Zeile einsetzen muss.
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Man kann sich ohne ssh key nicht mehr als root anmelden.

Also als admin anmelden mit vi die Datei /etc/sudoers öffnen und folgendes am Ende einfügen: USER ALL = NOPASSWD: ALL speichern dann mit :wq!


Probiert dann mal in der batch folgendes:
sudo su -
shutdown -h now
 

ringli

Benutzer
Mitglied seit
09. Mai 2015
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Danke für deine Antwort. :) Den SSH-Key übergebe ich in meiner Batch ja per "hostkey". Daran sollte es nicht liegen. Da ich mich mit Linux bzw. sudo nicht auskenne, frage ich mich noch ob die Zeile die du genannt hast nicht den Nachteil hat das nach dieser Änderung im Grunde jeder Benutzer ohne Probleme via sudo erhöhte Rechte anfordern kann. Gibt es nicht einfach die Möglichkeit dem Root Benutzernamen ein Passwort zuzuweisen?

[EDIT]
So sieht meine Batch aus:
Code:
plink.exe -batch -hostkey 01:23:45:67:89:01:23:45:67:89:01:23:45:67:89:01 -ssh root@192.168.123.123 -P 1234 -pw passwort poweroff
 
Zuletzt bearbeitet:

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
..... frage ich mich noch ob die Zeile die du genannt hast nicht den Nachteil hat das nach dieser Änderung im Grunde jeder Benutzer ohne Probleme via sudo erhöhte Rechte anfordern
Da hast du vollkommen recht. Dieser Eintrag hebelt das gesamte Sicherheitskonzept aus. Damit kann jeder User root-Rechte erhalten, und das auch noch ohne dass er dazu ein Passwort braucht!
Man kann beispielsweise einer Usergruppe das Ausführen eines einzelnen Befehls ohne Passwort erlauben:
Rich (BBCode):
 %admin     ALL = NOPASSWD: /sbin/poweroff
Das gleiche geht auch für einen einzelnen User:
Rich (BBCode):
admin      ALL = NOPASSWD: /sbin/poweroff
 

ringli

Benutzer
Mitglied seit
09. Mai 2015
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Nach viel Lesen und ausprobieren habe ich folgende (für mich) funktionierende Lösung gefunden die ohne herumbasteln in den Synology-Konfigurationsdateien auskommt.

  • Befehl ausführen (via SSH auf der Synology einloggen):
    Code:
     plink.exe -hostkey 01:23:45:67:89:01:23:45:67:89:01:23:45:67:89:01 -ssh <adminuser>@192.168.123.123 -P 1234
  • Passwort des Admin-Benutzers eingeben.
  • Befehl ausführen (wechselt zum Root-Benutzer):
    Code:
    sudo -i
  • Passwort des Admin-Benutzers eingeben.
  • Befehl ausführen (Passwort des Root-Benutzers ändern):
    Code:
    synouser --setpw root <Passwort>
  • Befehl ausführen (Root-Benutzer abmelden):
    Code:
    logout
  • Befehl ausführen (Admin-Benutzer abmelden):
    Code:
    logout

Danach funktioniert das Herunterfahren der Synology via
Code:
plink.exe -batch -hostkey 01:23:45:67:89:01:23:45:67:89:01:23:45:67:89:01 -ssh root@192.168.123.123 -P 1234 -pw passwort poweroff
wieder wie gewohnt. :)
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
bei mir funktioniert auch mit DSM 6.0 immernoch
plink.exe DS1513 poweroff
root login per Key, siehe Wiki, allerdings hat der private key kein Passwort bekommen.
In putty eine gespeicherte Verbindung mit dem Namen DS1513, Aoto-login username root, Private key file for authentication ->Pfad zum Keyfile.
Da WinSCP auch gespeicherte Verbindungen von putty zu importieren funktioniert der root login ebenso unproblematisch.

Gruß Götz
 

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
Nach viel Lesen und ausprobieren habe ich folgende (für mich) funktionierende Lösung gefunden die ohne herumbasteln in den Synology-Konfigurationsdateien auskommt.
Damit hast du das Sicherheitskonzept mit sudo ausgeschaltet, weil sich nun root wieder direkt anmelden kann (gleicher Zustand wie vor DSM 6.0). Da würde ich ein Login per Key, wie hier und hier beschrieben vorziehen.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Damit hast du das Sicherheitskonzept mit sudo ausgeschaltet, weil sich nun root wieder direkt anmelden kann
solange admin PW und root PW identisch sind würde ich nicht von Sicherheitskonzept sprechen bei sudo ;-) Kommt man als admin rein probiert man einfach su mit dem admin PW und ist root
 

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
Eigentlich will ich hier keine Diskussion über den Sinn von sudo starten (es gibt schon viele davon im Netz).
Es soll Linux-Distributionen geben, die standardmässig die gleiche sudo Konfiguration haben, wie es nun offensichtlich bei DSM 6.0 auch der Fall ist.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Es soll Linux-Distributionen geben, die standardmässig die gleiche sudo Konfiguration haben, wie es nun offensichtlich bei DSM 6.0 auch der Fall ist.
jein ;-)
Bezogen auf sudo ja, aber nein weil root PW und PW des admin Users nicht identisch sind. Wenn root PW und Admin PW gleich sind, mach ich einfach su + AdminPW und bin an sudo vorbei root

Ich sage nicht, dass sudo grundsätzlich ein Problem ist, sondern mehr, dass es Sicherheit "vorgaukelt" wo kein Mehr an Sicherheit ist. Wovor soll ein unterbundender root Login schützen? Genau vor den Schäden, die eine mögliche Kompromittierung des root Accounts zur Folge hätte. Wenn nun aber der admin Account mittels sudo uneingeschränkt alles darf und das noch ohne Passworteingabe. wo ist denn der Unterschied zu einem root Login? Zudem müssen wir, um im Vergleich zum root Login fair zu bleiben, voraussetzen, dass der admin Account geknackt wird. Sprich das Passwort wurde geknackt. Dann bietet nichtmal sudo + Passwort ein Mehr an Schutz
 

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
jein ;-)
Bezogen auf sudo ja, aber nein weil root PW und PW des admin Users nicht identisch sind.....
Das trifft sicher teilweise zu. Die (Linux)welt ist aber vielfältig:
Unter Ubuntu wird in der /etc/sudoers standardmäßig allen Mitgliedern der Gruppe [2] sudo erlaubt (vor Ubuntu 12.04 admin), zum Benutzer root zu werden und damit Rootrechte zu erhalten. Der oder die bei der Installation angelegten Benutzer gehört standardmäßig der Gruppe sudo an
Quelle
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Gerade bei Ubuntu war es früher so, dass kein root PW gesetzt wurde bei der Installation. Damit war es auch nicht möglich su+rootPW als Admin zu machen. Heutzutage deaktiviert Ubuntu den root afaik komplett, damit ist auch kein su+rootPW mehr möglich. Von daher ist dann sudo schon eine Art Schutz. Das ist aber beim DSM nicht so
 

Lynx42

Benutzer
Mitglied seit
24. Nov 2013
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Das gleiche geht auch für einen einzelnen User:
Rich (BBCode):
admin      ALL = NOPASSWD: /sbin/poweroff

Ich muss leider nochmal nachfragen, ich bin an der Stelle nicht fit: Wo gebe ich diese Codezeile von dir ein? Wenn ich mich mit putty über SSH mit der DS verbunden habe? Dann sagt er mir nämlich, dass er den Befehl nicht kennen würde.
Danke!
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.698
Punkte für Reaktionen
2.110
Punkte
829
Bist Du als root eingeloggt? Welche DSM-Version nutzt Du?
 

Lynx42

Benutzer
Mitglied seit
24. Nov 2013
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Bist Du als root eingeloggt? Welche DSM-Version nutzt Du?
Ich hatte es zuerst mit meinem Benutzer versucht, der in der Admin-Gruppe ist. Mit root geht es ja glaube ich nicht mehr, da ich seit gestern DSM 6.0 habe, oder?!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat