sudo: no tty present and no askpass program specified
Доброго времени суток дорогие читатели. На днях столкнулся я с проблемой удаленного запуска команды с повышенными правами. Ошибка звучит так:”sudo: no tty present and no askpass program specified“. Это означает что sudo не может использоваться при отсутствии терминала.
Для решения данного вопроса есть два варианта.
Вариант первый
Команда sudo имеет специальный ключ -n либо –non-interactive который позволяет использовать команду в отсутствии терминала
sudo -n <команда>
Дословно -n включает неинтерактивный режим (подсказки не используются)
Вариант второй
При удаленном запуске команд по ssh можно использовать ключ -t для запуска sudo команд
Описание данного ключа:
-t – Force pseudo-terminal 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. Multi‐ple -t options force tty allocation, even if ssh has no local tty.
Если кратко то он позволяет использовать sudo при удаленном запуске команд без подключения терминала.
ssh -t root@newadmin.ru 'sudo ls'
Можно прочитать тут как отключить постоянный ввод пароля sudo.