¿Cómo escapar de la contraseña en el comando plink sudo?

¿Cómo escapar de la contraseña en el comando plink sudo?

Cuando intento iniciar sesión con plink en un servidor, no sé cómo pasar correctamente la contraseña sudo en el comando.

Yo uso algo como esto:

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

La contraseña contiene 2 caracteres especiales: un ";" y un carácter "*". En primer lugar el ";" char debe tener como carácter de escape un "^" y se podrá establecer una conexión. Luego, en el comando necesito cambiar a sudo para usar un comando de la ventana acoplable. Normalmente debería coger el pase de la consola. Pero de alguna manera parece que se necesita una forma de escapar diferente. Probé algunas cosas y agregué comillas simples alrededor de la contraseña en segundo lugar, lo probé con y con el salto de línea detrás del pase, pero ninguna de las cosas que probé funcionó. ¿Alguien sabe cómo hacerlo funcionar?

Digamos que un ejemplo de contraseña es: abc123;*

Cuando uso este texto en el archivo bat:

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"

Lo que esperaría es que después de este código el usuario estuviera en el contenedor de la ventana acoplable y se mostrara una ruta de Tomcat. Pero en su lugar se muestra el directorio actual después de la conexión y debajo están esas líneas:

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

Probé diferentes enfoques para escapar de la contraseña del comando plink como: SET password=abc123\;\*o SET password=abc123%%3B%%2AoSET password=abc123^;*

pero ninguno de ellos funcionó.

Nota: Lamentablemente, cambiar la contraseña de usuario o configurar el servidor Linux en "sin contraseña" no es una opción.

información relacionada