Wechsel auf Linux. Ersatz für Autoit. Abläufe automatisieren

Brati23

Lt. Commander
Registriert
Sep. 2018
Beiträge
1.396
Moin,

Ich bin erst kürzlich von Windows auf Linux Mint umgestiegen. Unter Windows habe ich jeweils Autoit für die Automatisierung verwendet.
Wie sieht es unter Linux aus? Würdet Ihr bash als Ersatz empfehlen? Geht das auch unter Mint? Schade das Autoit nicht läuft. Ich bin gerade warm geworden damit.

Das Script sollte Putty öffnen, den Benutzer laden und im neu geöffneten ssh-Fenster die MAC-Adresse eingeben um einen Rechner per WOL aufzuwecken. ("sudo etherwake XX:XX:XX:XX:XX:XX")

Habt Ihr ein Beispiel wie es in etwa aussehen könnte oder ggf. alternative Ideen?
Grüsse Brati
 
Nur zum Verstaendnis.
Du willst per Putty auf eine andere Maschine/Router/Netzwerk und von dort aus das etherwake?
 
Brati23 schrieb:
Das Script sollte Putty öffnen, den Benutzer laden und im neu geöffneten ssh-Fenster die MAC-Adresse eingeben um einen Rechner per WOL aufzuwecken. ("sudo etherwake XX:XX:XX:XX:XX:XX")
konfiguriere den rechner so, dass du dich mittels key einloggen kannst und dass du dort etherwake mit sudo, aber ohne passwort ausführen kannst.

dann kannst du einfach lokal "ssh user@rechner sudo etherwake XX:XX:XX:XX:XX:XX" ausführen bzw. in ein script packen.
 
  • Gefällt mir
Reaktionen: Brati23
Muss sich überhaupt wo anders eingeloggt werden? ist der zu Weckende Rechner in einem anderen Netz?
 
ok, da du auf linux bist kannst du putty weglassen, wie schon erwähnt wurde.
einfach direkt das ssh tool nutzen. (in irgendeinem normalen Terminal - vielleicht das vorinstallierte)

Wenn du die befehle in ein script schreibst und die datei ausführbar machst kannst du sogar komplett auf ein terminal zu starten verzichten.
Da mal Grundlagen und Wissen zu shell scripten:
https://de.wikibooks.org/wiki/Linux-Praxisbuch/_Shellprogrammierung

Anleitung zu SSH gibts auch per man ssh
oder im internet mit den selben suchworten im Grunde. man ssh ist in der konsole normalerweise bei den meisten Linuxen möglich, wenn nicht so eine spardistro, die um jeden MB knausert und die das Handbuch weglassen.
Fast jeden Befehlt kannst du per man Befehl nachschlagen (solange installiert)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: dasBaum_CH und Brati23
Ich werde Eure Vorschläge testen Danke.
0x8100 schrieb:
konfiguriere den rechner so, dass du dich mittels key einloggen kannst und dass du dort etherwake mit sudo, aber ohne passwort ausführen kannst.
Ich melde mich am Pi4 (160) per ssh-key und Passwort an. Daher dachte ich Putty wird für den Key gebraucht.
0x8100 schrieb:
dann kannst du einfach lokal "ssh user@rechner sudo etherwake XX:XX:XX:XX:XX:XX" ausführen bzw. in ein script packen.
Das geht leider nicht. Nach einiger Zeit vergisst die Fritze 7490 (160) den Rechner. Details kann ich liefern falls gewünscht führt aber fast zu weit hier. Der Aufwachbefehl muss aus dem (160) Netz kommen.

Edit: @h00bi schrieb damals:
Brati23 schrieb:
Im LAN geht es immer. Über das Internet Anfangs auch. Aber eben nur kurz nach dem in den Ruhezustand versetzen. 5 min später geht es nicht mehr. Egal ob im entfernten VPN-LAN oder per 4G.
das ist ein ziemlich klares Zeichen dafür, dass der Router deinen PC aus dem ARP Cache verliert, da er nicht mehr aktiv ist. Intern geht es immer weil dort das Magic Packet an die Broadcast Adresse geleitet wird.

Du hast einfach das Problem dass die WOL Pakete nicht ans Ziel kommen.
Das wird mit Consumer Hardware wie Fritzboxen vermutlich unmöglich sein.
Du müsstest den FBs klarmachen, dass sie das WOL Paket an den Broadcast im anderen Netz senden sollen.

Du könntest dir einen Pi ins Netzwerk hängen, dort "ether wake" o.ä. installieren und dann ein SSH Script starten welches sich auf dem Pi per SSH einloggt und den PC weckt.
 
Zuletzt bearbeitet:
Brati23 schrieb:
Das geht leider nicht.
das ist ja der witz an der sache, dieser ssh befehl führt etherwake auf dem entfernten rechner aus, nicht auf deinem. und das ganze geht ohne eingabe eines passworts.
 
  • Gefällt mir
Reaktionen: Brati23 und BFF
Klingt nach einer tollen Möglichkeit, Danke! 👍

Kurz nachgefragt. Der ssh-key darf also nicht per Passwort geschütz sein? Wäre mir recht wenn da noch ein Passwort eingeben werden müsste. Aber dann funktioniert dieser Weg nicht?
Müsste ich also einen neuen Key ohne Passwort erstellen?
 
natürlich kannst du auch einen key mit einem passwort verwenden. du kannst es auch ohne key einfach mit username/password machen, wenn du ein passwort eingeben willst (je nachdem wie der rechner per ssh erreichbar ist, ist ein key natürlich sicherer). aus bequemlichkeitsgründen solltest du nur etherwake in visudo für deinen user auf dem remote-pc ohne passwort erlauben, sonst musst du das passwort auch immer noch eingeben.
 
Habe gerade festgestellt, dass der ssh-Key doch keinen Passwort Schutz hat und der "normale" Login per Passwort noch aktiv ist. (andere Baustelle)
Bei Putty ist mir klar wo ich den Key hinterlegen muss. So gehts dann ohne Passwort. Beim Linux-Client noch nicht ganz.
Ich dachte erst ich muss die Datei auf dem Client auch in .ssh/authorized_keys packen aber das brachte keinen Erfolg. Es kommt weiterhin die Passwortabfrage.
0x8100 schrieb:
konfiguriere den rechner so, dass du dich mittels key einloggen kannst
Wohin mit dem Ding? :D Habe es wie hier beschrieben versucht. Bzw. einfach die Datei in /home/benutzer/.ssh/authorized_keys kopiert/umbenannt.

Geht es möglicherweise nicht weil ich den Key von Putty kopiert habe oder bin ich auf dem Holzweg mit home/benutzer/.ssh/authorized_keys?

Danke für die Geduld.
 
putty benutzt ein eigenes format für den private key (*.ppk). du kannst den ins openssh-format konvertieren oder du erstellst dir fix einen neuen key (mit "ssh-keygen"). das tool legt den private und public key in ~/.ssh mit den richtigen berechtigungen ab. kopierst du selbst den private key musst du darauf achten, dass nur dein user den lesen darf ("chmod 400 /pfad/zu/key"). der public key wie gewohnt in die authorized_keys auf dem remote host und los gehts :)
 
Dacht ichs mir doch als ich die .ppk Datei kurz per Editor geöffnet habe. Dann bin ich zumindest auf dem richtigen Weg.
Der .ppk key welcher unter Putty funktioniert habe ich gemäss dieser Anleitung unter Windows im Putty Key Generator geöffnet und den Public key ausgelesen. (OpenSSH) Diesen dann in eine txt. Datei gespeichert, auf den Mint PC geladen (Client der auf den Pi verbindet), unter home/user/.ssh eingefügt, in "authorized_keys" umbenannt, gespeichert (ohne Dateiendung) und die Rechte mit "chmod 400 /home/user/.ssh/authorized_keys" vergeben.

Dann habe ich gemerkt, dass ja eigentlich der Private key auf den Client sollte und diesen aus der .ppk Datei kopiert und anstelle des Public key in die /home/user/.ssh/authorized_keys Datei eingefügt (nur die lange Zahlenkombination, den Anfang "ssh-rsa" und das Ende "user@server" habe ich so belassen)

Die Passwortabfrage kommt weiterhin beim Verbindungsversuch (Terminal) mit "ssh user@rechner sudo etherwake XX:XX:XX:XX:XX:XX"

Noch eine Idee? Sonst muss ich den key doch neu generieren. Aber dann wäre es vermutlich erforderlich ihn auf den anderen Clients auch zu ersetzen?
 
Brati23 schrieb:
Dann habe ich gemerkt, dass ja eigentlich der Private key auf den Client sollte und diesen aus der .ppk Datei kopiert und anstelle des Public key in die /home/user/.ssh/authorized_keys Datei eingefügt (nur die lange Zahlenkombination, den Anfang "ssh-rsa" und das Ende "user@server" habe ich so belassen)
Nein, so klappt das nicht.
Jeder Schlüssel bzw. jedes Schlüsselpaar besteht aus einem privaten und einem öffentlichen Teil, also zwei Dateien.
In die Datei /.ssh/authorized_keys schreibt man alle public keys, deren Schlüsselpaare (bzw. private keys) ein Zugang auf dem jeweiligen System erlaubt werden soll.
Die private Datei benötigt man auf dem System, von welchem aus man sich anmelden möchte.

Vermutlich ist es am einfachsten, du machst die komplett neue Schlüssel, dann kannst du 1:1 einer Anleitung folgen. Kannst im Grunde einfach auf allen beteiligten Systemen den kompletten Inhalt von /home/user/.ssh löschen und von vorne anfangen (außer natürlich, du hast irgendwelche key-Dateien, die du behalten möchtest.)

Edit: Bzw. kannst du natürlich auch weiterhin puTTY verwenden, gibt's ja auch unter Linux. Ist nur unnötig, wobei es das unter Windows ebenfalls ist, weil auch dort mit OpenSSH direkt aus bspw. Powershell heraus ssh-Verbindungen aufgebaut werden können. Aber sollte dich ja nicht zwingend stören.

Und zur ursprünglichen Frage: Ja, sollte mit einem bash-Skript, oder auch einer Funktion in bash machbar sein.
 
  • Gefällt mir
Reaktionen: NJay und Brati23
Zurück
Oben