Diskstation per Script herunterfahren

simonth

Benutzer
Mitglied seit
26. Sep 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich habe das folgende Problem mit meiner Synology DS (DS216j):
Ich hatte gemerkt, dass mein Zeitplan zum automatischen Hochfahren nicht mehr funktioniert.
Die Uhr im System zeigt nach jedem Neustart 12:00 im Jahr 1970 an.
Es musste also die CMOS Batterie leer sein und daher habe ich diese ausgewechselt.
Leider ist mir dabei die Halterung für die Batterie abgebrochen, die war sehr fest drin und ich musste mit etwas Gewalt vorgehen, was dann dazu geführt hat, dass die Halterung abbrach.
Nun habe ich mich damit abgefunden, dass die Batterie nicht mehr funktioniert, da mir das Anlöten der Halterung etwas aufwendig erscheint, da das Mainboard scheinbar auch fest am Gehäuse sitzt und ich gar nicht an die Unterseite herankäme.
Ich habe mir nun damit geholfen, dass ich eine Batch-Datei zum Hochfahren über WOL geschrieben hab.
Das gleiche suche ich nun auch fürs Herunterfahren, da ich mich nicht immer übers Webinterface einloggen möchte und auch nicht den Schalter am Gerät selbst drücken möchte.
Ich habe in diesem Forum bereits bestehende Themen durchgelesen, leider reichen mir die Informationen nicht ganz aus, um es hinzubekommen.
Ich habe folgendes von einem User hier gelesen:
"Hallo,
am einfachsten ist es wenn Du Dir in putty eine Session für Deine DS speicherst.
- IP eigeben
- im Feld Saved Sessions einen einfachen Namen eingeben zB. syno
- unter Connection Data Auto-login username root eintragen
- unter Connection SSH Auth Private key for authentication Dein private key File eintragen
- zurück zu Session und dort Save klicken
Die Kategorien findest Du am linken Rand. Wenn alles stimmt per Open testen. Klappt das problemlos dann kannst Du per
plink syno poweroff
die DS herunterfahren. Hierbei steht syno für die gespeicherte putty Session."

Könnte mir jemand sagen, ob das nach wie vor die sicherste und einfachste Möglichkeit ist, um die DS über (in meinem Fall Windows) herunterzufahren und mir ggf. noch genauer erläutern, wie ich einen Key erstelle und was ich in der DS an Einstellungen vornehmen muss, damit das ganze funktioniert?
Dafür wäre ich sehr dankbar.
Viele Grüße,
Simon
 

simonth

Benutzer
Mitglied seit
26. Sep 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Da ich bisher keine Antwort erhalten habe, habe ich weiter recherchiert.
Folgende Anleitung habe ich mir zurecht gelegt und wollte fragen, ob mein Vorhaben so richtig ist:

1. Auf der DS SSH mit Port 22 freischalten
2. Ein Schlüssel-Paar mit PuttyGen erstellen.
3. Nun muss der Public Key in die authorized-keys auf der DS kopiert werden
Dazu:
Per Putty als Admin-User auf der DS einloggen und den Befehl "sudo -i" eingeben?
Ins Verzeichnis .ssh wechseln und dort die Datei "authorized_keys" bearbeiten mit "vi authorized_keys"
Dafür entweder "i" oder "o" drücken, falls schon ein Schlüssel drin ist.
Nun den Key aus PuttyGen herauskopieren und ins Feld reinkopieren
Danach "Esc" drücken (warum ESC?)
Anschließend ":wq" drücken.
Abschließend die Befehle:

chmod 700 ~
chmod 700 ~/.ssh
chmod 0600 authorized_keys

ausführen.

Ist das so richtig?
Gibt es da noch etwas, was man falsch machen kann?
Reicht es, wenn ich einfach das Putty Fenster per X schließe oder muss ich das per Befehl machen?

Mit welchem Befehl kann ich nun die DS herunterfahren?
Wäre das dann dieser hier?
plink "Name der Putty Session" /sbin/shutdown -h now ??

Kann ich den ganzen Befehl dann einfach in eine .bat Datei packen und laufen lassen?

Über eine kurze Rückmeldung würde ich mich freuen!
Danke!
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.642
Punkte
314
Hi!

Du erstellst mit PuTTYgen einen public sowie einen private Key. Der public Key wird anschließend auf deiner DS im Root-Konto unter /root/.ssh/authorized_keys abgelegt. Der private Key hingegen wird in PuTTY unter Connection SSH Auth Private key for authentication hinterlegt. Wenn du das alles hast, dann solltest du dich per RSA-Authentifizierung auf deiner DS anmelden können und somit direkt eine Verbindung zum Root-Konto der DS aufbauen können, ohne den Umweg über sudo -i gehen zu müssen.

Frage: Hast du bei der Erstellung der Keys ein Passwort vergeben oder nicht? Falls ja, dann musst du den Verbindungsaufbau immer mit der Eingabe des Passwortes autorisieren. Du hast auch die Möglichkeit, ohne ein Passwort zu arbeiten, indem du bei der Erstellung der Keys das Passwortfeld leer lässt. Damit büßt du zwar ein wenig Sicherheit ein, gewinnst aber ein wenig mehr Usability. Musst du also selber wissen.

Tip: Ich verwende bei der Erstellung von Keys immer 4096 Bit RSA, oftmals tut es aber auch schon 2048 Bit. Musst du auch selber wissen.

Eine Terminal Sitzung wird i.d.R. immer mit dem Befehl exit beendet.

Ich weiß nur nicht recht, wie genau der Typ am Ende den Shutdown ausführt. Ich hab mich mit PuTTY jetzt auch eher nur oberflächlich beschäftigt, daher weiß ich grad nicht, ob man da auch automatische Scripte nach einem Verbindungsaufbau ausführen kann. Das müsste ich mir erstmal selbst anschauen. Alternativ geht das halt über den geöffneten Terminal zu deiner DS.

Tommes
 

simonth

Benutzer
Mitglied seit
26. Sep 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Hi Tommes,

vielen Dank für deine Antwort!
Du schreibst: "Der public Key wird anschließend auf deiner DS im Root-Konto unter /root/.ssh/authorized_keys abgelegt."
Ist root ein Nutzer? Oder kann es auch mein User-Account sein?
Den Prozess des Key ablegens habe ich versucht mit meiner Anleitung nachzuvollziehen,
ist meine Anleitung dann so korrekt?
Ich habe bei Puttygen kein Passwort vergeben.
Alles, was ich dann also nur noch bräuchte, wäre der richtige Shutdown-Command.
Ich möchte wie gesagt die DS per Doppelklick auf eine Batch-Datei in Windows herunterfahren, da mir der Umweg über das Web-Interface zu aufwendig ist, da ich jedes Mal in meinen Passwort-Manger gehen muss, um das Passwort einzugeben...
Ich hätte das ganze also gerne bequem per Doppelklick...
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.642
Punkte
314
Ein einfaches shutdown sollte reichen, es geht aber auch ein shutdown -h now über das PuTTY Terminal Fenster.

Du könntest über die Windows Eingabeaufforderung oder CMD eine kleines Script schreiben oder einfach folgenden Befehl ausführen, natürlich gefüttert mit deinen Daten und ohne eckige Klammern

ssh -p [PORT] [SSHUSER]@[REMOTE_SERVER] "/sbin/shutdown"

Jedoch kennt die Windows Eingabeaufforderung deine RSA Schlüssel nicht, weshalb das so erstmal nicht funktionieren würde. Ich Verbinde mich aber auch immer nur über PuTTY und eigentlich nie über den Windows Terminal. Auch hocke ich hier grad an meinem Tablet kann das grad alles nicht testen.

Ich such aber grad mal im Netz, ob ich was passendes finde…
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.642
Punkte
314
Ist root ein Nutzer? Oder kann es auch mein User-Account sein?
Autsch! Wenn man nicht weiß, wer root ist, sollte man auch die Finger von diesem Benutzer lassen. Hier mal eine kurze Definition zum Root-Konto... *klick* Und nein, ein "Benutzer" kann meines Wissens keinen Server runterfahren.. will das jetzt aber auch nicht testen wollen.
Den Prozess des Key ablegens habe ich versucht mit meiner Anleitung nachzuvollziehen,
ist meine Anleitung dann so korrekt?
Das wird dir das Ergebnis zeigen. Für den Moment sieht die Anleitung soweit in Ordnung aus, aber auf dem Weg kann man auch vieles falsch machen bzw. unterschiedlich interpretieren.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.871
Punkte
488
Wenn man mit putty/puttygen arbeitet, ist vielleicht die Verwendung von plink zur Ausführung von Remote-Kommandos die bessere Wahl.
Damit geht dann z.B. "plink -batch root@ds415 ls -als" und somit wohl auch andere Kommandos ohne Interaktion. Wo man beim Windows-ssh das Keyfile mitgeben kann, hab ich noch nicht gefunden.
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.642
Punkte
314

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.871
Punkte
488
Wie man das mit dem Windows-ssh macht, hab ich jetzt auch gefunden. Man kopiert einfach die id_rsa-Datei (also nicht die id_rsa.ppk) nach C:\Benutzer\<Nutzername>\.ssh. Dann klappt auch z.B. "ssh root@ds415 ls -als" ohne Interaktion.
 
  • Like
Reaktionen: Tommes

simonth

Benutzer
Mitglied seit
26. Sep 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Danke euch beiden für eure Antworten.
Ich bin wie gesagt blutiger Anfänger.
Bin jetzt etwas verunsichert, ob ich das ganze hinbekomme.
Also wenn ich die Keyfiles auf die DS gepackt habe, müsste es dann auch über plink mit dem o.g. Befehl funktionieren, oder?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.871
Punkte
488
Das Thema "root-Zugriff" per ssh/WinSCP wurde mal hier ausführlich behandelt.
Dabei entsteht neben dem Schlüssel, den man unter authorized_keys auf dem Server eintragen muss auch eine id_rsa-Datei, die man für ssh auf dem Client braucht.
putty selbst und auch WinSCP braucht die Datei aber in einem leicht anderen Format, die man mit puttygen daraus erzeugen kann. Heraus kommt dann eine id_rsa.ppk-Datei. Details weiß ich aber nicht mehr, das ist 5 Jahre her. Lies dich mal etwas ein.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Hallo in die Runde ?

Ich lese immer nur Putty und die damit verbundenen Hürden und teilweise umständliche Bedienung. Ich persönlich mag Putty nicht und ist mir auch ein bisschen zu restriktiv und nicht gerade Unix like.
Wer sich das Leben auf einem Windows Betriebssystem per command line erleichtern möchte dem empfehle ich wärmstens Cygwin zu verwenden. Damit lässt sich mit den bekannten Unix Befehlen arbeiten und man hat sogar ein vernünftiges Terminal.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.871
Punkte
488
Cygwin ist m.E. eher was aus 90igern, als es noch keine Linux-Integration in Windows gab. Probier mal aus, was inzwischen schon alles mit Windows Bord-Mitteln geht, sogar Shell-Scripte gehen. Inzwischen kann man sogar Ubuntu als App über den Store installieren, dann wird der Befehls-Umfang noch größer. Ich war selbst überrascht, was da schon alles geht, als mein Sohn mir das gezeigt hat.
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.642
Punkte
314
Ich war selbst überrascht, was da schon alles geht, als mein Sohn mir das gesagt hat.
Haha… das ist echt erschreckend, das man sich sowas von seinen Kindern erklären lassen muss, oder? ?
 
  • Like
Reaktionen: luddi

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.871
Punkte
488
Da hast du Recht (y) :ROFLMAO:
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Cygwin ist m.E. eher was aus 90igern, als es noch keine Linux-Integration in Windows gab.
Das stimmt, wird aber weiterhin gepflegt und allemal besser als Putty.

Probier mal aus, was inzwischen schon alles mit Windows Bord-Mitteln geht, sogar Shell-Scripte gehen.
Du meinst über die PowerShell? Mag sein dass da mit Bord Mitteln bereits viel geht.

Inzwischen kann man sogar Ubuntu als App über den Store installieren, dann wird der Befehls-Umfang noch größer.
Das muss ich mir einmal anschauen. Aber Cygwin läuft einfach zu gut und ich bin es gewohnt damit zu arbeiten. Außerdem sind die dll´s nicht gerade groß und je nachdem was alles an binaries installiert wird ist es in meinen Augen ein ziemlich überschaubares Paket.

Ich mag auch etwas old fashioned sein und verwende deshalb auch noch Cygwin... Aber allemal besser als dieses sch.... Putty. :D
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.057
Punkte für Reaktionen
3.871
Punkte
488
Das muss ich mir einmal anschauen
Ich mir auch noch genauer. Hab erst heute die ersten Gehversuche gemacht. Cygwin kenne ich auch noch, halt von früher. Mir war immer aber ein "echtes" Linux lieber.
 


 

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