Script: Verschlüsselten Ordner via Keyfile (.key) entschlüsseln

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Traue mich ja fast nicht, aber erhalte folgendes:
-ash: Call:: command not found
 

Tommes

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

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.541
Punkte für Reaktionen
1.373
Punkte
234
Hast du ein Doppelpunkt oder andere Sonderzeichen in deinem Passwort?
Setz die Variable mal in Anführungszeichen:

Bash:
#!/bin/bash
# Script name: decrypt-share.sh
# Call: . ./decrypt-share.sh SHARENAME

echo -n "Enter Share Password: "
read -s passwordVariable
echo ""
/usr/syno/sbin/synoshare --enc_mount "$1" "$passwordVariable"
 
  • Like
Reaktionen: Benie

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Sooooo, danke schonmal, es funktioniert. Aber nur, wenn ich das Kennwort in der decrypt-share.sh hart reinschreibe. Das soll doch so nicht sein, oder? Denn dann steht es ja wieder im Klartext auf dem NAS.
 

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Düdüm, geht doch nicht.
Lasse ich das Script laufen, dann erhalte ich den Fehler ': not a valid identifierable.
Tippe ich den echo -n Befehl ein, dann funktioniert es...
 

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Liegt es vielleicht daran, dass ich das Ganze in einer Text-Datei im Windows erstellt habe und dann auf die Synology kopiert habe (Thema Zeilenumbruch)?
 

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Alter, ich glaub das ist der Fehler, nachher nochmal im wachen Zustand testen...
 

Wiesel6

Benutzer
Mitglied seit
22. Aug 2016
Beiträge
322
Punkte für Reaktionen
101
Punkte
43
@scriptius Schau dir mal als Editor notepad++ an, den habe ich früher unter Windows genutzt. Mittlerweile nutze ich Windows nicht mehr.
 
  • Like
Reaktionen: Benie

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Ach, daher weht der Wind!
Gut, das mit der falschen Codierung kann natürlich sehr gut sein und ich erinnere mich, das ich anfangs vor demselben Problem stand. Von daher...

Scripten unter Linux erfordert als Codierung immer UTF-8 ohne BOM wobei man mittlerweile dazu übergegangen ist, den Zusatz ohne BOM als Information einfach wegzulassen und man stattdessen nur noch UTF-8 sagt. Gemeint ist damit aber immer noch ohne BOM.

Für kleinere Codeschnipsel und um mal eben etwas zu testen, eignet sich das Text-Editor Paket, welches man über das DSM Paketzentrum installieren kann. Hier bräuchte man eigentlich nichts groß einzustellen, da der Text-Editor bereits auf einem Linux-System läuft und er die Standardcodierung automatisch erkennt, aber man kann hier natürlich auch UTF-8 fest einstellen. Hier ein Screenshot...

Text-Editor.png

Alternativ würde das beim Notepad++ unter Windows so aussehen...

Notepad.png

Notepad++ bietet hier auch die Konvertierung zu UTF-8 an. Ich würde an deiner Stelle aber eine neue Datei erstellen, nachdem du auf UTF-8 umgestellt hast und den Inhalt des Scriptes nochmal neu reinkopieren. Ist einfacher.

Meine absolute Empfehlung lautet aber Visual Studio Code. Hier wäre die Einstellung unter diesem Punkt zu finden...

VisualStudioCode.png

So. Und nun hoffe ich für dich @scriptius das du es nun endlich schaffst, das Script ans Laufen zu bekommen. Mein rechtes Auge zuckt nämlich schon ganz nervös.

Tommes
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Benie

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Prima, jetzt funktionierts! Das Zucken kann wieder aufhören :). Danke Euch!

Im bash_history.log steht kein Kennwort drin. Im auth.log so auf den ersten Blick auch nicht.

Jetzt muss ich nur noch schauen, wie ich das über Putty angestoßen bekomme. Vermutlich was mit plink...
 
  • Like
Reaktionen: Tommes

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
So, habe nun eine txt-Datei erstellt:
Zeile 1 mit dem Befehl in das richtige Verzeichnis zu wechseln,
Zeile2 mit dem Befehl . ./decrypt-share.sh SHARENAME.

Dann habe ich eine .cmd-Datei erstellt: plink "Anmeldung am NAS" -m "Pfad zur obigen txt-Datei".

Ist das der richtige Weg, oder geht es auch einfacher?

Die Kennwortabfrage kommt und wenn ich das Kennwort eingegeben habe und return drücke passiert nix. Erst wenn ich das Kennwort eingegeben habe und "strg+z" und dann return drücke, wird das Script weiter ausgeführt.
Soll das so sein?
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Vielleicht verrätst du uns zunächst, was genau du vor hast?
 

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Nagut :).
Wir haben ja die decrypt-share.sh-Datei erstellt, um einen verschlüsselten Ordner zu entschlüsseln. Dies möchte ich nun über meinen Windows-PC mittels einer .cmd-Datei tun (also die Datei auf dem NAS über meinen PC ausführen). Die decrypt-share.sh-Datei liegt auf dem NAS (hoffe das macht man so). Und um diese auszuführen, habe ich die txt-Datei erstellt, damit die .cmd-Datei mittels plink -m die txt-Datei ausliest und die Befehle übergibt.
Ob das jetzt noch einer versteht... :)
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Ob das jetzt noch einer versteht...
Ich verstehe schon, was du vor hast, aber ich werde hier aussteigen, weil das a) nicht mein Fachgebiet ist und b) eigentlich nicht in diesen Thread gehört. Ich würde, wenn überhaupt, den Remote Befehl per SSH ausführen. Dein Problem wird jedoch sein, das du mit dem Remote Server interagieren müsstest, da du ja irgendwie dein Passwort übermitteln musst. Da bin ich raus.

BTW: Ich würde immer noch dazu raten, das eigentliche Passwort in einem Verschlüsselungsschlüssel (Keyfile) zu deponieren um das Passwort anschließend durch Eingabe einer zuvor festgelegten Passphrase auszulesen. Die Passphrase könnte man dann ggfl. per SSH an ein Script des Remote Servers übergeben, wo dann das auslesen des Keyfiles und das Einhängen des Ordners erfolgt. Somit würde das eigentliche Passwort nirgendwo im Klarnamen erscheinen, allenfalls die Passphrase. Das funktioniert mit synoshare meines Wissens jedoch nicht.

Viel Erfolg

Tommes
 

scriptius

Benutzer
Mitglied seit
05. Apr 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Alles klar, Du hast recht. Danke nochmal an Dich und Euch.
Btw. meinen User lasse ich nun löschen, wegen dem irreführenden Namen. Ist ja kein Problem.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Oh, ha! Da hab ich ja wieder was angestellt. Wegen mir musst du deinen Namen nicht ändern, auch wenn ich dir das anfangs empfohlen hatte. Was nicht ist, kann ja noch werden. Wir haben alle mal bei Null angefangen. Vielleicht würdest du dich in ein- oder zwei Jahren sogar Scriptprofi nennen wollen, weil du bis dahin alles wie ein Schwamm aufgesaugt hast. Wer weiß das schon.

Hätte mir jemand von ein paar Jahren erzählt, das ich irgendwann Programme für Synology NAS Systeme schreibe, hätte ich ihn wohl ausgelacht. Gut mein Benutzername sagt nichts darüber aus… aber herje… behalt deinen Namen bitte einfach

Tommes
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Wie auch immer… deine Entscheidung.

Ich habe nochmal ein wenig nachgedacht und theoretisch müsste es durchaus möglich sein, per SSH einen Befehl sowie angehängte Argumente an ein Script auf deiner Synology NAS zu übergeben und auszuführen. Jedoch bedarf es dazu ein wenig mehr, als so ein Codeschnipsel, wie ich weiter oben gepostet hatte. Auch müsstest du zunächst eine SSH Public Key Verbindung einrichten, um den Befehl direkt an den Benutzer root zu senden. Ich schreib das mal auf meine lange Liste mit Dingen, die ich mal ausprobieren wollte, möchte aber auch nichts versprechen. Aber theoretisch ist das durchaus machbar.

Vielleicht läuft man sich ja nochmal, dann unter anderem Namen, über den Weg

Tommes
 


 

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