2015-11-07 1 views
0

Я использую Paramiko для SSH и редактирую файл конфигурации. Сам файл нуждается в разрешениях sudo для редактирования. Это пока не проблема, поскольку я только что сделал echo <sudopw> | sudo <command> для других команд sudo в моем скрипте.Ошибка Paramiko при попытке отредактировать файл: «sudo: no tty present и no askpass program defined»

Когда я пытаюсь редактировать этот файл с помощью sed, ничего не происходит. stderr производит: sudo: no tty present and no askpass program specified

Вот мой код:

stdin, stdout, stderr = client.exec_command 
('echo <sudopassword> | sudo sed -i -e \"\\$aAllowUsers\" /etc/ssh/sshd_config)') 

Я попытался решения с помощью invoke_shell, но ничего, кажется, работает. Любое решение для редактирования этого файла было бы полезно.

EDIT: Это было решено! Не используйте get_pty. Используйте опцию -S sudo сразу после «sudo».

ответ

2

Если прочитать сообщение об ошибке

sudo: no tty present and no askpass program specified 

, то вы можете легко найти решение: добавить опцию -t к вашей команде ssh:

-t
Force псевдо-терминал распределение. Это может быть использовано для выполнения произвольных программ на основе экрана на удаленной машине, что может быть очень полезно, например. при реализации услуг меню. Несколько -t опции force tty allocation, даже если ssh не имеет локального tty.

Это обсуждалось раньше:

Что касается Paramiko, были вопросы, связанные с парой различных подходов:

  • использовать get_pty метод SSH Channel для получения псевдо-терминал (который аналогичен говоря ssh сделать это)
  • использовать -S вариант sudo и отправить пароль на стандартный вывод.

Для обсуждения см предлагаемых ответов здесь:

+0

Я пытаюсь сделать это с Paramiko, хотя. У меня нет голых команд ssh. Все это через метод 'execute_command()' Paramiko'. Я видел эти сообщения по этой теме, и они не помогли. – AlwaysQuestioning

+0

Опция -S работала!Я пробовал вариант get_pty в течение нескольких дней без везения. Спасибо! – AlwaysQuestioning

 Смежные вопросы

  • Нет связанных вопросов^_^