Как говорит даже ваш вопрос, файл commands.txt
, указанный переключателем -m
, должен содержать команды . пароль не является командой .
Более того, команды в файле выполняются одна за другой.sudo
(если бы он работал) выполнял бы интерактивную сессию оболочки и ждал пользовательского ввода (команд).Только после выхода из режима sudo
выполняются следующие команды (command-1
и т. Д.).
Автоматический ввод пароля для sudo
, как правило, плохая идея.Если вам нужно выполнить некоторые команды, требующие прав суперпользователя, лучшим решением будет связать выделенный закрытый ключ с командами в файле sudoers
.А затем используйте sudo
и закрытый ключ в Plink.
В любом случае, для автоматизации ввода (в данном случае пароля) команды вам необходимо использовать перенаправление ввода.То же самое верно для команд, которые должны быть выполнены внутри (а не после) sudo
.
Как:
(
echo passwod
echo command-1
echo command-2
) | plink.exe -ssh -t user@ipaddress -pw <psw> sudo -s
Поскольку сейчас есть только одна настоящая команда верхнего уровня - sudo
,Я указываю это непосредственно в командной строке Plink, вместо использования ключа -m
.Функционально он идентичен.