plink sudo 명령에서 비밀번호를 탈출하는 방법은 무엇입니까?

plink sudo 명령에서 비밀번호를 탈출하는 방법은 무엇입니까?

plink를 사용하여 서버에 로그인하려고 할 때 명령에 sudo 비밀번호를 올바르게 전달하는 방법을 모르겠습니다.

나는 다음과 같은 것을 사용합니다 :

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

비밀번호에는 2개의 특수 문자(";")가 포함되어 있습니다. 그리고 "*" 문자. 우선 ";" char은 "^"로 이스케이프해야 하며 연결을 설정할 수 있습니다. 그런 다음 명령에서 docker 명령을 사용하려면 sudo로 전환해야 합니다. 일반적으로 콘솔에서 패스를 가져와야 합니다. 그러나 어떻게든 다른 탈출이 필요한 것 같습니다. 나는 몇 가지를 시도하고 두 번째로 비밀번호 주위에 작은 따옴표를 추가하고 패스 뒤에 줄 바꿈을 사용하여 시도했지만 시도한 것 중 아무 것도 작동하지 않았습니다. 누구든지 작동시키는 방법을 알고 있습니까?

예시 비밀번호는 다음과 같습니다: abc123;*

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"

내가 기대하는 것은 이 코드 후에 사용자가 docker 컨테이너에 있고 tomcat 경로가 표시된다는 것입니다. 그러나 대신 연결 후 현재 디렉터리가 표시되고 아래에는 다음 줄이 있습니다.

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

plink 명령의 비밀번호를 탈출하기 위해 다음과 같은 다양한 접근 방식을 시도했습니다. SET password=abc123\;\*또는 SET password=abc123%%3B%%2A또는SET password=abc123^;*

하지만 그들 중 누구도 일하지 않았습니다.

참고: 불행하게도 사용자 비밀번호를 변경하거나 Linux 서버를 "비밀번호 없음"으로 설정하는 것은 옵션이 아닙니다.

관련 정보