Как выполнить команды на удаленном хосте, используя SSH из веб-приложения, встроенного в Django?

1

Мне нужно выполнить некоторые команды на удаленном хосте, этот хост будет "Router". Я никогда не работал с вызовами RPC. Еще одна большая проблема заключается в том, что я должен выполнять эти команды из веб-приложения Django. Шаги следующие:

  • Пользователь открывает страницу и выбирает команду для выполнения
  • Пользователь выбирает удаленный хост из данного списка
  • Пользователь нажимает кнопку выполнения
  • Между тем Django проверит проблему безопасности. Это означает, что он разрешит удаленный хост с использованием SSH
  • И требуемая команда выполняет на хосте и отправляет сообщение "Done!"

Как я должен начать работать над этой проблемой?

Как мне создать SSH-соединение с страницы профиля пользователя на удаленном хосте?

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

Теги:
rpc
remote-access
routed-commands

1 ответ

2
Лучший ответ

Вы должны начать с библиотеки paramiko, это не так сложно api. И есть примеры, связанные с библиотекой.

Вы можете создать SSH - клиент, передать имя хоста, порт, имя пользователя и файл ключа пользователя в конструкторе, создать оболочку, выполнить вашу команду и прочитать выходные команды, стандартный вывод только. Вы можете прочитать stderr отдельно или объединить его с stdout.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню