SSH: выполните команду sudo

У меня есть интерактивный сценарий оболочки, для которого в одном месте нужно к ssh к другой машине (базирующаяся Ubuntu), и выполните что-то как корень (пользователь должен ввести свой пароль, но удаленная команда должна работать как отмеченный в сценарии):

# ...
ssh remote-machine 'sudo ls'
# ...

Однако я всегда возвращаю это сообщение об ошибке:

sudo: no tty present and no askpass program specified

Хорошо, это довольно ясно. Но как я могу обойти это? Что-то вроде этого должно произойти:

$ ssh remote-machine 'sudo ls /'
[sudo] password for user1:

/bin
/etc
/var
45
задан 05.03.2013, 15:20

1 ответ

Поразительное ssh имеет средство исправления для всего. Точка должна добавить -t отметьте, чтобы вынудить ssh выделить pseudo-tty:

ssh -t remote-server 'sudo ls'
52
ответ дан 07.12.2019, 08:37

Теги

Похожие вопросы