functionstrut
Goto Top

Passwort mit Spezialzeichen in Powershell Script

Hallo,

habe einen Linux Client den ich gerne per SSH neustarten möchte. Das Problem ist mein starkes Passwort.

Passwort(natürlich komplett anders aber das "Muster" ist das selbe) ist in der $pw Variable gespeichert.

$pw = "MeQST^J0dLuG|;CRuh+}}W_)fe%3],"v7#]?7a4durY#9Gef,t,l^}~xqn|V"  
Echo Y | plink -ssh 192.168.2.100 -l root -pw $pw "/sbin/reboot"  

trotzdem bekomme ich immer ein Access Denied. Ich denke es liegt am Passwort. Habe schon das Internet ausgiebig gefragt aber konnte keine Lösung finden face-sad

Content-Key: 501541

Url: https://administrator.de/contentid/501541

Printed on: April 18, 2024 at 02:04 o'clock

Member: emeriks
Solution emeriks Oct 04, 2019 updated at 07:21:07 (UTC)
Goto Top
Hi,
Das wird am " im Passwort liegen.
Wenn im Passwort kein Hochkomma ist, dann das Passwort in Hochkomma statt Anführungszeichen setzen.
Wenn im Passwort kein Anführungszeichen ist, dann das Passwort in Anführungszeichen statt Hochkomma setzen.
Wenn im Passwort beides enthalten ist, dann das Passwort in Anführungszeichen setzen und die " im Passwort doppelt schreiben.

$pw = 'MeQST^J0dLuG|;CRuh+}}W_)fe%3],"v7#]?7a4durY#9Gef,t,l^}~xqn|V'  
oder
$pw = "MeQST^J0dLuG|;CRuh+}}W_)fe%3],""v7#]?7a4durY#9Gef,t,l^}~xqn|V"  

E.
Member: erikro
Solution erikro Oct 04, 2019 at 07:57:52 (UTC)
Goto Top
Moin,

1. Es ist keine gute Idee, sich direkt und ohne pk als root einzuloggen.
2. Es ist keine gute Idee, das Rootpasswort in einem Skript zu speichern.
3. Das, was @emeriks gesagt hat, beachten.
4. Es könnte bei Deinem Muster auch passieren, dass Zeichenfolgen wie ?{ oder %{ oder $x vorkommen. Das würde die PS dann als where-object oder foreach-object oder als Variable interpretieren.

Poste doch mal das Originalpasswort. face-wink

Liebe Grüße

Erik
Mitglied: 141320
Solution 141320 Oct 04, 2019 updated at 08:06:09 (UTC)
Goto Top
Zitat von @emeriks:

Hi,
Das wird am " im Passwort liegen.
Wenn im Passwort kein Hochkomma ist, dann das Passwort in Hochkomma statt Anführungszeichen setzen.
Wenn im Passwort kein Anführungszeichen ist, dann das Passwort in Anführungszeichen statt Hochkomma setzen.
Wenn im Passwort beides enthalten ist, dann das Passwort in Anführungszeichen setzen und die " im Passwort doppelt schreiben.

> $pw = 'MeQST^J0dLuG|;CRuh+}}W_)fe%3],"v7#]?7a4durY#9Gef,t,l^}~xqn|V'  
> oder
> $pw = "MeQST^J0dLuG|;CRuh+}}W_)fe%3],""v7#]?7a4durY#9Gef,t,l^}~xqn|V"  
> 

E.
Oder man nutzt gleich einen Here-String mit Hochkomma dann ist egal was darin vorkommt und man muss es auch nicht escapen
$pw = @'  
MeQST^J0dLuG|;CRuh+}}W_)fe%3],"v7#]?7a4durY#9Gef,t,l^}~xqn|V'  
'@  
https://devblogs.microsoft.com/scripting/powertip-use-here-strings-with- ...

Aber wie gesagt Plaintext Passwörter gehören nicht in Skripte! Das hat man vor Jahren vielleicht so gemacht, heutzutage ist das ein NOGO.
Member: Lochkartenstanzer
Solution Lochkartenstanzer Oct 04, 2019, updated at Oct 06, 2019 at 13:03:18 (UTC)
Goto Top
Zitat von @141320:


Aber wie gesagt Plaintext Passwörter gehören nicht in Skripte! Das hat man vor Jahren vielleicht so gemacht, heutzutage ist das ein NOGO.

Das hat man auch vor Jahren und Jahrzehnten nicht gemacht, wenn man Ahnung von der Materie hatte. Der Unterschied ist, daß es sich inzwischen herumgesprochen hat, daß das noch nie eine gute Idee war und es inzwischen weniger Leute machen.

@to:

google mal nach horse battery staples xkcd um zu erfahren, wie man sichere Paßwörter ohne Sonderzeichen hinbekommt.

lks

PS: Sonderzeichen wollen "escaped" werden!

PPS: Bei ssh mit skripten nutzt man keys.


Edit: Tyos
Mitglied: 141320
141320 Oct 04, 2019 updated at 08:21:55 (UTC)
Goto Top
PS: Sonderzeichen wollen "escaped" werden!
Im Here-String der PS mit Single Quotes nicht nötig, ohne here string natürlich richtig.
Member: erikro
erikro Oct 04, 2019 at 08:36:41 (UTC)
Goto Top
Moin,


PPS: Vei ssh mit skripten nutzt man keys.

Hier eine Anleitung für den TO wie das geht: https://twincreations.co.uk/pre-shared-keys-for-ssh-login-without-passwo ...

hth

Erik
Member: functionstrut
functionstrut Oct 04, 2019 at 08:48:12 (UTC)
Goto Top
Leider du funktioniert deine Methode auch nicht. Hatte schon diverse Kombinationen mit doppelten Anführungszeichen oder Hochkommas probiert. Er wirft immer noch Access Denied aus face-sad

@anderen: es handelt sich bei mir hier nicht um irgendwelche Hochsicherheitsanwendungen in Firmenbereich sondern einfach nur ein kleiner Raspberry Pi zu Hause der NICHT einmal über das WAN erreichbar ist. Von daher finde ich es nicht sooo schlimm wenn das Passwort im Klartext gespeichert ist. Ich würde aber gerne auch auf die Variante mit dem Key umsteigen wenn das nicht allzu aufwändig ist. Anscheinend funktioniert es ja eh nicht mit dem Klarpasswort. Gibt es denn eine gescheite Anleitung um die Keys dann auch in Powershell zu nutzen für Script Ausführungen? Der Link oben beschreibt ja lediglich die Erstellung des Keys.

Danke schonmal face-smile
Member: erikro
erikro Oct 04, 2019 at 08:56:03 (UTC)
Goto Top
Moin,

Zitat von @functionstrut:
Gibt es denn eine gescheite Anleitung um die Keys dann auch in Powershell zu nutzen für Script Ausführungen? Der Link oben beschreibt ja lediglich die Erstellung des Keys.

Ein Blick in das Handbuch: https://docs.microsoft.com/de-de/powershell/scripting/learn/remoting/ssh ... face-wink

Oder damit: https://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-p ...

Liebe Grüße

Erik
Member: functionstrut
functionstrut Oct 06, 2019 at 10:47:21 (UTC)
Goto Top
wollte mich nur bei allen beteiligten bedanken face-smile

Habe nun letztenendes wie ihr sagtet mir ein key erzeugt und nutze nun diesen + Passphrase zum Login per SSH. Habe dann auch direkt den Login für User+PW deaktiviert für mehr Sicherheit. Man muss sich halt nur mal damit beschäftigen face-smile
Bin nach dieser Anleitung gegangen:
jankarres.de/2013/12/raspberry-pi-ssh-schluessel-erstellen-und-passwort-aendern/
(nur für die Leute die es später mal googeln)
Member: Lochkartenstanzer
Lochkartenstanzer Oct 06, 2019 updated at 13:04:58 (UTC)
Goto Top
Zitat von @141320:

PS: Sonderzeichen wollen "escaped" werden!
Im Here-String der PS mit Single Quotes nicht nötig, ohne here string natürlich richtig.

Und wenn ein single quote im Paßwort ist, zusätzlich zum double quote? face-smile

lks
Mitglied: 141320
141320 Oct 06, 2019 updated at 15:30:36 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:

Zitat von @141320:

PS: Sonderzeichen wollen "escaped" werden!
Im Here-String der PS mit Single Quotes nicht nötig, ohne here string natürlich richtig.

Und wenn ein single quote im Paßwort ist, zusätzlich zum double quote? face-smile
Das ist eben egal bei Here-Strings das macht dort nichts !! Genauso wie bei Here-Strings in der Bash.