sudo over ssh: не вказано tty присутності та не вказано жодної програми пропуску


15

Я продовжую отримувати цю помилку і спробував декілька обговорених в Інтернеті способів виправити це, і жоден не працює для мене. У мене є налаштування 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

Це не характерно для Cygwin; Я бачу ту ж проблему, що використовується ssh example.com sudo echo helloвід однієї системи Linux до іншої. Я відповідно оновив вашу назву. Я також позначив ваше запитання щодо міграції на сайт Unix.
Кіт Томпсон

Відповіді:


10

Для запуску потрібно мати термінал, щоб sudoвін міг запропонувати вам пароль. Якщо ви передаєте команду ssh, вона передбачає, що команда не потребує терміналу і не створює її, якщо ви не передаєте -t. Дивіться, що SSH всередині SSH не вдається зі "stdin: не tty" для більш детального пояснення.

Якщо ви навіть не можете ввести пароль -t, можливо, ваша проблема пов’язана з Windows. Консоль Windows не повністю імітує термінал unix; можуть бути певні труднощі для додатків Cygwin правильно імітувати термінал за цих обставин (я не впевнений у цьому, зауважте). Якщо це проблема, запустіть sshвсередині емулятора терміналів, таких як Console2 або Mintty (включені до дистрибутива Cygwin) - див. Найкращий спосіб використання оболонки з Cygwin у Windows 7 .

Якщо ви очікували, що пароль проходу SSH замінить ваш пароль для автентифікації на sudo, цього не відбудеться. Судо вимагає пароль (якщо ви не додали NOPASSWDтег у файл судорів). Зауважте, що вам все ще потрібно мати термінал, навіть NOPASSWDякщо цей requirettyпараметр встановлений у файлі sudoers.

Якщо ви хочете ввійти без пароля до кореневого облікового запису (що з точки зору безпеки, як правило, не є хорошою ідеєю), використовуйте SSH для доступу до кореневого облікового запису, бажано, за два перестрибування. Дивіться, що SSH всередині SSH не вдається зі "stdin: не tty"root@host.comfor otheruser@computertwo.com).


3

Давайте ви хочете, щоб не було ввімкнено пароль для команди / binary nodejs.

Змініть візуально

sudo visudo

З наступного рядка, щоб увімкнути пароль для команди. Пропуск - це кілька команд з комами та пробілом після кожної команди.

<user name> ALL = NOPASSWD: /usr/local/bin/node

колишній sunthara ALL = NOPASSWD: /usr/local/bin/node

введіть тут опис зображення


1

Відредагуйте файл конфігурації ssh-сервера та додайте внизу:

root# vim /etc/ssh/sshd_config

Match User newton
    PermitTTY yes

Не працює: service sshd restart=>/etc/ssh/sshd_config: line 91: Bad configuration option: User
kiltek

Можливо, потрібно змінити наMatch User newton
ILMostro_7

1
Ні, це не означає, що ви не можете записати Userу свій файл sshd, оскільки ця опція конфігурації не існує. (принаймні, це стосується моєї системи Ubuntu 16.04)
kiltek

Із довідкових сторінок: "MatchIntroduces умовний блок. Якщо всі критерії в рядку Match відповідають умовам, ключові слова в наступних рядках замінюють ті, що встановлені в глобальному розділі файла конфігурації, поки не з'явиться інший рядок відповідності або до кінця Аргументи для відповідності є однією або кількома парами шаблонів критеріїв. Доступними критеріями є користувач, група, хост і адреса. Шаблони відповідності можуть складатися з окремих записів або списків, розділених комами, і можуть використовувати підстановку та заперечення оператори, описані в розділі PATTERNS ssh_config (5). "
ILMostro_7

Я не бачу Matchблоку у вашій відповіді ...
kiltek

0

Я зіткнувся з цією помилкою, коли зробив помилку в / etc / sudoers. Замість вказівки декількох команд на зразок цієї:

NOPASSWD= /bin/x, /bin/y

Збережено як:

NOPASSWD= /bin/x /bin/y

тобто без коми. Тепер, коли я намагаюсь, я отримую не теперішнє повідомлення

ssh host 'sudo x'

0

Не знаю, чи це пов’язано, але коли я мав '... NOPASSWD: /xyz/script.shl' у файлі sudoers, я отримав це повідомлення про помилку, поки не включив #!/bin/shellnameрядок у верхній частині /xyz/script.shlфайлу.


0

коментуючи наведені нижче параметри у файлі / etc / sudoers, мені допомогли.

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".
#
Defaults    requiretty

#
# Refuse to run if unable to disable echo on the tty. This setting should also be
# changed in order to be able to use sudo without a tty. See requiretty above.
#
Defaults   !visiblepw

---> прокоментуйте параметри так

#Defaults    requiretty
#Defaults   !visiblepw
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.