Выполнить команду sudo на linux из plink.exe [windows]
Если я выполняю команду plink
plink [email protected] sudo nano/etc/hosts
После ввода пароля при появлении запроса я получаю
sudo: нет tty присутствует и не указана запрошенная программа
Извините, повторите попытку.
sudo: нет tty присутствует и не указана запрошенная программа
Извините, повторите попытку.
sudo: нет tty присутствует и не указана запрошенная программа
Извините, повторите попытку.
sudo: 3 неправильных попытки пароля
Как выполнить команду sudo из plink? Или есть альтернативы?
Ответы
Ответ 1
Я знаю, что вопрос старый, но это может помочь
вы можете выполнить plink (инструменты замазки)
plink -v -ssh -m "path/to/commands.txt" -l usertologin -pw PASSWORDSERVER
Commands.txt:
echo -e "PASSWORD\n" | sudo -S cat /etc/passwd
sudo -S должен получить пароль от stdin и с echo -e "password\n" - передать пароль (и\n - нажать intro -new line-)
так же, как вы можете выполнить команду passwd:
> echo -e "OLDPASSWORD\nNEWPASSWORD\nNEWPASSWORD" | passwd
Ответ 2
Почему вы используете plink здесь? В общем, вы должны использовать plink для вызова неинтерактивного script на удаленном хосте. Если вы хотите делать интерактивные материалы (например, редактировать файл), просто ssh на сервере (либо из вашей оболочки, используя клиент ssh в Linux, либо запустив putty на Windows), а затем отредактируйте файл.
Более подробную информацию о plink и некоторых примерах можно найти здесь:
http://the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter7.html
Ответ 3
Почему Plink? вместо этого используйте SSH. Также SSH понадобится -t
для команд sudo
.
На странице man ssh:
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote
machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty
allocation, even if ssh has no local tty.
Ответ 4
Мне нужно было сделать несколько папок и установить perms. Эти блоки работали для меня в PowerShell для автоматизации. Кто бы там ни предлагал просто использовать SSH, надеюсь, понял, что в настоящее время это не правильное решение. Сокращение ручного процесса должно быть целью каждого.
$null = iex "cmd /c $plinkpath -ssh -l $linuser -pw $linpass $computername `"echo $linpass | sudo -S mkdir $puppetfolder`"" *>&1
$null = iex "cmd /c $plinkpath -ssh -l $linuser -pw $linpass $computername `"echo $linpass | sudo -S chmod o+wx $puppetfolder`"" *>&1