Vor kurzem habe ich mir einen neuen Router gekauft und stand vor dem Problem das meine "Homeserver"(ganz normale Desktops mit VIEEEEL RAM) nicht mehr auf WoL reagieren wollten.
Der ein oder andere fragt sich bestimmt, warum ich nicht einfach meine Finger benutze schließlich ist das Einschalten per Knopfduck am Gehäuse keine große Herausforderung.
Nunja das würde ich gern nur muss ich dafür da die Server auf dem Dachboden stehen, eine Klappe öffnen, eine Leiter herunterlassen, mit einer Taschenlampe hochklettern, Server Einschalten und das ganze nochmal rückwärts.
Meine bisherige Konfiguration
PC <-> WLAN-Router(Marke XY) <-> W-LAN Bridge <-> Switch <-><-> Server
Hatte bisher gut funktioniert ein Skript sendete ein WoL Paket an den Server der daraufhin startete alles gut.
Bis ich die grandiose Idee hatte mir einen neuen Router zu kaufen.
Dieser schien nämlich die WoL Pakete einfach nicht weiterzuleiten. Zwar wollte ich unbedingt herausfinden, woran es nun liegen könnte jedoch hatte der neue Router keine Möglichkeit Pakete mitzuschneiden was in einer Sackasse endete. Packete wurden zum Router gesendet und verschwanden an diesem wie in einem schwarzen Loch.
Also musste eine neue Lösung her.
Zuerst hatte ich so etwas vor wie einen Raspberry PI an die Powertaster Pins des Mainboards zu klemmen und dieses dann einzuschalten.
Aber warum umständlich wenn es auch einfach geht. Anstatt die GPIO Pins für den Einschaltvorgang zu nutzen konnte ich über den 🍰 selbst die WoL Pakete schicken.
Also
PC <-> WLAN-Router(Marke XY in Neu) <-> W-LAN Bridge <-> Switch <-> Server
<-> PI (Ich sende jetzt WoL Pakete)
Es sollte jedoch genauso einfach sein wie vorher ein einziger klick auf ein Skript.
SSH ohne Passwort
Eine Verbindung über SSH mit dem PI aufzubauen und den Server zu Starten war nicht sonderlich schwer.
Wenn man das ganze nun aber über ein Skript realisieren will steht man doof da.
Man könnte mit Sicherheit dem Skript das Passwort mitgeben, nur bin ich kein Fan von Passwörtern in Klartext.
Stattdessen gibt es die Möglichkeit sich mit einen RSA Schlüsselparr einzuloggen.
Ich hab das ganze mithilfe von Putty gemacht.
Zuerst muss ein Schlüsselparr per PuTTYgen generiert werden. Dabei muss man nachdem man auf Generate gedrückt hat mild mit der Maus hin und her fahren sonst passiert nichts. Anhand der Mausbewegung werden dann Zufallswerte für das Schlüsselparr generiert.
Den Public key kopiert ihr erstmal bei Seite und speichert den private key an einem Ort ab wo ihr ihn wiederfindet.
Danach muss ein Profil mit der IP gespeichert werden brauchen wir später noch.
Nun müsst ihr den Pfad des Private Key in Putty unter Connection -> SSH -> Auth angeben.
Das wäre erstmal alles auf der Seite eures PCs.
Jetzt verbindet ihr euch mit dem PI.
Per "apt-get install wakeonlan" Installieren wir das tool wakeonlan brauchen wir später noch.
Um sich erfolgreich per SSH ohne Passwort verbinden zu lassen müssen wir folgendes tun.
Wenn ihr es noch nicht seid navigiert ihr ins Homeverzeichnis des Users mit dem ihr euch verbinden wollt.
"cd /home/usernamedesusers/"
Dann wird ein Verzeichnis Names .ssh erstellt es könnte sein das es bereits vorhanden ist.
"mkdir .ssh"
In diesem erstellen wir eine Datei Names authorized_keys
"nano .ssh/authorized_keys"
Es wird sich ein Editor öffnen in den ihr den Public Key Hineinkopieren könnt.
Wichtig dabei ist ein Leerzeichen vor ssh zu setzten und den Key durchgängig in eine Zeile zu schreiben.
Mit STRG + O könnt ihr speichern und mit STRG + X den Editor "nano" schließen.
Das wars wenn ihr euch jetzt per Putty verbindet sollte kein Passwort mehr verlangt
Bevor es weitergeht solltet Ihr einmal kurz Testen ob wakeonlan funktioniert.
"wakeonlan [AA:BB:CC:DD:EE:FF] "
Reagiert das Gerät was ihr Einschalten wollten ist das schonmal die halbe Miete.
Automation
Da alles vorbeireitet ist kann jetzt alles automatisiert werden.
Ich habe daraus ein einfaches Batch Skript gebaut.
WoL.bat
C:\Pfad\putty.exe -load "profil_name_in_putty" -m Dateiname(wol.sh)
-load lädt das Profil was wir am Anfang gespeichert haben -m führt auf dem PI die befehle aus die in einer Datei enthalten sind.
wol.sh
wakeonlan aa:bb:cc:dd:ee:ff
Woll ihr mehere Geräte starten oder mehere Befehle aufführen müsst ihr diese mit && verketten.
wakeonlan aa:bb:cc:dd:ee:ff && wakeonlan ff:ee:dd:cc:bb:aa
Wenn Ihr alles Richtig gemacht habt wird Putty euch ganz kurz das Ergebnis vom Befehl ausspucken bevor alle Fenster sich wieder schließen.
Ich hoffe das kurze Abenteuer in die Unix Welt hat euch gefallen. Das funktioniert natürlich auch mit jeder anderen Linux(GNU/Linux) Kiste.
Grüße it5ky
Hey @it5ky,
Public Key Authentifizierung ist genau der richtige Weg für dieses Problem.
Schön beschrieben, nettes Tutorial. 👍😎
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @it5ky! You received a personal award!
Click here to view your Board
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @it5ky! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit