Wie kann man das Passwort im Plink-Sudo-Befehl umgehen?

1635
user2718671

Beim Versuch, mich mit plink an einem Server anzumelden, weiß ich nicht, wie ich das sudo-Passwort korrekt im Befehl übergeben soll.

Ich benutze so etwas:

plink -ssh -t <user>@<server> -pw <password> "echo -e <password>\n | sudo -S docker ... | cd <some path>" 

Das Passwort enthält 2 Sonderzeichen - ein ";" und ein "*" Zeichen. In erster Linie das ";" char muss mit einem "^" maskiert werden und eine Verbindung kann hergestellt werden. Dann muss ich im Befehl zu sudo wechseln, um einen Docker-Befehl zu verwenden. Normalerweise sollte es den Pass von der Konsole nehmen. Aber irgendwie scheint es, dass ein anderes Fliehen erforderlich ist. Ich habe ein paar Dinge ausprobiert und das Passwort an zweiter Stelle in Anführungszeichen gesetzt, es mit und mit dem Zeilenumbruch hinter dem Pass ausprobiert, aber keines der Dinge, die ich versucht habe, hat funktioniert. Jeder weiß, wie es funktioniert?

Angenommen, ein Beispielkennwort lautet: abc123; *

Wenn ich diesen Text in der bat-Datei verwende:

SET password=abc123;* plink -ssh -t <username>@<server> -pw abc123^;* "echo -e %password%\n | sudo -S docker exec -i <docker_container> <docker_container_path> |pwd" 

Ich würde erwarten, dass sich der Benutzer nach diesem Code im Docker-Container befindet und ein Tomcat-Pfad angezeigt wird. Stattdessen wird das aktuelle Verzeichnis nach der Verbindung angezeigt und darunter befinden sich folgende Zeilen:

[sudo] password for <user>: Sorry, try again [sudo] password for <user>: sudo: 1 incorrect password attempt 

Ich habe verschiedene Ansätze ausprobiert, um das Passwort für den Plink-Befehl zu umgehen, zB: SET password=abc123\;\*oder SET password=abc123%%3B%%2AoderSET password=abc123^;*

aber keiner von ihnen hat gearbeitet.

Hinweis: Leider ist es nicht möglich, das Benutzerpasswort zu ändern oder den Linux-Server auf "Kein Passwort" zu setzen.

0
Da ich Sie bereits gefragt habe (https://stackoverflow.com/questions/48059709/how-to-escape-password-in-plink-sudo-command#comment83093085_48059709), gibt `echo -e% password% \ ein n | sudo - ... `Arbeit für Sie im SSH-Terminal? Martin Prikryl vor 6 Jahren 0
@MartinPrikryl: Nun ja, es funktioniert. Ohne das Echo gäbe es keine falsche Passwortversuchsnachricht. user2718671 vor 6 Jahren 0
Das ist eine ziemlich zweideutige Antwort. ** Haben Sie es erfolgreich getestet ** im SSH-Terminal? Martin Prikryl vor 6 Jahren 0
@MartinPrikryl: Ähm, ich denke es funktioniert. Ich habe mich mit Putty angemeldet und den Echo-Befehl ausprobiert. Aber alles was ich als Feedback bekomme ist ein falscher Passwortversuch. Ich habe auch versucht: Echo^ | ... wenn ich nur das Echo benutze Ich sehe das richtige Passwort, wenn ich das Semikolon mit \; user2718671 vor 6 Jahren 0
Also klappt es nicht. Martin Prikryl vor 6 Jahren 0
@ MartinPrikryl: Ah ok, danke. Entschuldigung, ich wusste es nicht. Meine Sysadmin-Fähigkeiten sind sehr begrenzt. ;) Da es einen Rückruf gab, dass das Passwort falsch ist, habe ich erwartet, dass etwas übergeben wurde und es sich nur um einen anderen Syntaxfehler oder etwas anderes handelt. user2718671 vor 6 Jahren 0
Mögliches Duplikat von [sudo mit Kennwort in einer Befehlszeile?] (Https://superuser.com/questions/67765/sudo-with-password-in-one-command-line) Martin Prikryl vor 6 Jahren 0

0 Antworten auf die Frage