Я продолжаю получать эту ошибку и пробовал несколько способов, обсуждаемых в Интернете, чтобы исправить это, и ни один из них не работает для меня. У меня настроены ключи SSH, поэтому, когда я запускаю 'ssh newton@host.com'
его, он автоматически входит в систему, я также настраиваю этого пользователя, visudo
чтобы 'newton ALL=(ALL:ALL) ALL'
затем я также пытался добавить'newton ALL=NOPASSWD: /var/www/script.sh'
К сожалению, каждый раз, когда я бегу ssh newton@host.com 'sudo /var/www/script.sh'
из Cygwin, я возвращаюсь. Я также попытался добавить, -t -t
но затем он запрашивает пароль.
total size is 21209180 speedup is 314.69
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts
ssh example.com sudo echo hello
из одной системы Linux в другую. Я обновил ваш заголовок соответственно. Я также пометил ваш вопрос для перехода на сайт Unix.Ответы:
Вы должны иметь доступный терминал,
sudo
чтобы он мог запрашивать пароль. Если вы передаете командуssh
, это предполагает, что команде не нужен терминал и он не создается, если вы не пропустите-t
. Посмотрите SSH внутри SSH терпит неудачу с "stdin: не является tty" для более подробного объяснения.Если вы не можете ввести пароль даже с помощью
-t
, возможно, ваша проблема связана с Windows. Консоль Windows не полностью эмулирует Unix-терминал; В таких случаях приложениям Cygwin может быть сложно правильно эмулировать терминал (я не уверен в этом, заметьте). Если это проблема, запуститеssh
внутри эмулятора терминала, такого как Console2 или Mintty (входит в дистрибутив Cygwin) - см. Лучший способ использования оболочки с Cygwin в Windows 7 .Если вы ожидали, что пароль SSH заменит ваш пароль для аутентификации на sudo, этого не произойдет. Sudo требует пароль (если вы не добавите
NOPASSWD
тег в файл sudoers). Обратите внимание, что вам все еще нужно иметь терминал, дажеNOPASSWD
если, если вrequiretty
файле sudoers установлена опция.Если вы хотите без пароля войти в систему под учетной записью root (что, как правило, не очень хорошая идея с точки зрения безопасности), используйте SSH для доступа к учетной записи root, желательно в два прыжка. Посмотрите SSH внутри SSH завершается неудачно с "stdin: is not tty" (с
root@host.com
forotheruser@computertwo.com
).источник
Давайте захотим включить пароль без пароля для команды / двоичного узла nodejs.
Изменить Visudo
С помощью следующей строки, чтобы включить пароль для команды. Pass - это несколько команд с запятыми и пробелом после каждой команды.
ех.
sunthara ALL = NOPASSWD: /usr/local/bin/node
источник
Отредактируйте файл конфигурации ssh-сервера и добавьте внизу:
источник
service sshd restart
=>/etc/ssh/sshd_config: line 91: Bad configuration option: User
Match User newton
User
в свой файл sshd, потому что такой опции конфигурации не существует. (по крайней мере, так на моей системе Ubuntu 16.04)Match
блока в вашем ответе ...Я столкнулся с этой ошибкой, когда допустил ошибку в / etc / sudoers. Вместо указания нескольких команд, таких как это:
Я сохранил как:
т.е. без запятой. Теперь я получаю сообщение об отсутствии tty при попытке
источник
Не знаю, связано ли это, но когда в файле sudoers было '... NOPASSWD: /xyz/script.shl', я получал это сообщение об ошибке, пока не добавил
#!/bin/shellname
строку в начало/xyz/script.shl
файла.источник
мне помогло комментирование следующих параметров в файле / etc / sudoers.
---> закомментируйте параметры следующим образом
источник