Как избежать пароля в команде plink sudo?

1440
user2718671

При попытке войти с помощью plink на сервер, я не знаю, как правильно передать пароль sudo в команде.

Я использую что-то вроде этого:

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

Пароль содержит 2 специальных символа - ";" и символ "*" На первом месте ";" char должен быть экранирован с помощью «^», и соединение может быть установлено. Затем в команде мне нужно переключиться на sudo, чтобы использовать команду docker. Обычно для этого нужно взять пропуск с консоли. Но почему-то кажется, что нужно другое спасение. Я попробовал кое-что и добавил одинарные кавычки вокруг пароля во-вторых, попробовал его с разрывом строки за проходом, но ничего из того, что я пробовал, не сработало. Кто-нибудь знает, как заставить это работать?

Допустим, пример пароля: 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, и будет отображен путь к коту. Но вместо этого отображается текущий каталог после подключения, а внизу есть такие строки:

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

Я попытался diffent подходов к бегству пароля для Plink команды, как: SET password=abc123\;\*или SET password=abc123%%3B%%2AилиSET password=abc123^;*

но никто из них не работал.

Примечание. К сожалению, изменение пароля пользователя или установка на сервере linux «no password» не вариант.

0
Как я уже просил (https://stackoverflow.com/questions/48059709/how-to-escape-password-in-plink-sudo-command#comment83093085_48059709), выполняет `echo -e% password% \ ' п | sudo - ... `работаешь для тебя в терминале SSH? Martin Prikryl 6 лет назад 0
@MartinPrikryl: Ну, да, это работает. Без эха не было бы сообщения о попытке неверного пароля. user2718671 6 лет назад 0
Это довольно неоднозначный ответ. ** Вы успешно проверили ** в терминале SSH? Martin Prikryl 6 лет назад 0
@MartinPrikryl: Хм, я думаю, что это работает. Я вошел в систему с помощью putty и попробовал эту команду echo. Но все, что я получаю в качестве обратной связи, - неправильная попытка пароля Я тоже попробовал: echo^ | ... если я использую только эхо Я вижу правильный пароль, когда экранирую точку с запятой с помощью \ ;. user2718671 6 лет назад 0
Так что не работает. Martin Prikryl 6 лет назад 0
@MartinPrikryl: Ах, хорошо, спасибо. Извините, я не знал. Мои навыки сисадмина очень ограничены. ;) Так как был ответный звонок, что пароль неправильный, я ожидал, что что-то было передано, и это было просто из-за другой синтаксической ошибки или чего-то еще. user2718671 6 лет назад 0
Возможный дубликат [sudo с паролем в одной командной строке?] (Https://superuser.com/questions/67765/sudo-with-password-in-one-command-line) Martin Prikryl 6 лет назад 0

0 ответов на вопрос

Похожие вопросы