Ошибки

Ошибка sudo «a terminal is required to read the password»: пароль ввести некуда

sudo нужен пароль, а ввести его некуда: команда запущена без окна терминала. Запустите её через ssh -t, перенесите в расписание root или разрешите одну команду без пароля.

Обновлено 09.10.2026≈ 4 мин чтения
Содержание 9

Что сделать прямо сейчас

  1. Если вы запускаете команду с компьютера через ssh сервер 'команда' — добавьте ключ -t, способ 1.
  2. Если команда стоит в расписании cron — перенесите её в расписание root, способ 2.
  3. Если команду запускает скрипт или программа — разрешите ровно эту команду без пароля, способ 3.

Что значит это сообщение

sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required

sudo спрашивает пароль в окне терминала. Если команда запущена без такого окна — из скрипта, из расписания cron, через ssh сервер 'sudo …' или из программы для автоматической выкладки, — спросить пароль негде, и sudo отменяет команду.

Подсказка в сообщении предлагает ключ -S — читать пароль из входного потока. Для этого пароль пришлось бы хранить в скрипте открытым текстом, поэтому этот путь мы не советуем.

Способ 1. Запустите команду через ssh -t

Если вы запускаете одну команду с компьютера, не входя на сервер, добавьте ключ -t — он открывает окно терминала на сервере для этой команды:

ssh -t ivan@ВАШ_IP 'sudo systemctl restart nginx'

sudo спросит пароль, вы введёте его, и команда выполнится. Вместо ivan — имя вашего пользователя, вместо ВАШ_IP — адрес сервера.

Способ 2. Задания по расписанию — в расписание root

У root своё расписание задач, и команды в нём выполняются с правами администратора — sudo там не нужен. Откройте его:

sudo crontab -e

Перенесите строку из своего расписания сюда и уберите из неё слово sudo. Из своего расписания (crontab -e без sudo) эту строку удалите.

Способ 3. Разрешите одну команду без пароля

Если команду запускает скрипт или программа, можно разрешить вашему пользователю запускать без пароля ровно одну команду. Сначала узнайте полный путь к программе:

command -v systemctl

Команда выведет путь, например /usr/bin/systemctl. Создайте отдельный файл правил:

sudo visudo -f /etc/sudoers.d/ivan-nginx

Откроется текстовый редактор. Если это nano — как сохранить файл, написано в разделе про nano. Впишите одну строку:

ivan ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx

Здесь ivan — ваш пользователь, дальше — полный путь к программе и её параметры точно так же, как они будут в скрипте. Сохраните файл и выйдите: visudo проверит правило и предупредит, если в нём ошибка.

Имя файла пишите без точки и без знака ~: такие файлы в папке /etc/sudoers.d sudo пропускает. Проверьте все правила разом:

sudo visudo -c
Не разрешайте без пароля все команды (NOPASSWD: ALL) — тогда любой, кто получит доступ к вашему пользователю, станет администратором сервера.

Как проверить

Для способа 3 выполните команду с ключом -n — он запрещает sudo спрашивать пароль:

sudo -n systemctl restart nginx

Если команда выполнилась без ошибок — правило работает. Если ответ sudo: a password is required — строка в файле не совпадает с командой: сверьте путь и параметры.

Похожие ошибки

СообщениеЧем отличается
sudo: a password is requiredОдна эта строка — ответ на sudo -n: пароль нужен, а спрашивать его запрещено
Sorry, try againПароль введён, но не подошёл
… is not in the sudoers fileНет права на sudo

Тексты сообщений на этой странице сверены с исходным кодом sudo 1.9.15p5 — эта версия стоит в Ubuntu 24.04. В других версиях слова могут немного отличаться.

Источники

Сверено 9 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 09.10.2026