Название: Реализация простого удалённого администрирования. Отправлено: Павелъ от Январь 30, 2018, 16:00 Доброго времени суток.
Необходимо обработать вывод bash-скриптов на стороне клиента (с получением информации на сервер). Есть 2 подхода. 1) Использовать программу-клиент, которая будет запущена на устройстве и по tcp получать команды на запуск bash скриптов с дальнейшим отправлением обработанной информации серверу. 2) Использовать подключение по ssh или telnet. Первый вариант я реализую. Остаётся разобраться, как работать со вторым. Тут я столкнулся с трудностями. Запустить выполнение bash-скрипта на серверной машине проблем нет. QProcess - readAll(). А как быть с удалённым запуском? Ручками подключиться через терминал по ssh к клиенту легко. Перед тобой полноценный терминал, где ты можешь выполнять те же команды, что и на серверной машине. А через QProcess это сделать возможно? 1) Генерация ключа. 2) Ввод пароля (от этого пункта можно избавиться). 3) Отправка команд на выполнение вместе с подключением. Можно как-то реализовать такое подключение и получение информации в виде одного bash-скрипта, в котором на вход поступали бы адрес хоста, логин, пароль, команда с параметрами, а на выходе после закрытия соединения выдавалась бы полученная от программы информация? Может telnetom это легче реализовать, или есть другие способы? Название: Re: Реализация простого удалённого админис Отправлено: alex312 от Январь 30, 2018, 19:07 ssh может выполнять команды на удаленной машине.
Код Что бы постоянно не вводить пароль нужно на все нужные машины разложить открытый ключ. Либо пользовать sshpass Название: Re: Реализация простого удалённого админис Отправлено: Павелъ от Январь 30, 2018, 23:05 ssh может выполнять команды на удаленной машине. Код Что бы постоянно не вводить пароль нужно на все нужные машины разложить открытый ключ. Либо пользовать sshpass sshpass - хорошая вещь, спасибо. Только имеющиеся bash-скрипты в файлах на текущей машине не получится использовать для запросов на стороне удалённой машины. Код: sshpass -p 'yourpassword' ssh -o StrictHostKeychecking=no join@IP "command" Название: Re: Реализация простого удалённого админис Отправлено: alex312 от Январь 31, 2018, 08:05 Или всё-таки есть возможность использовать bash-скрипт текущей машины на удалённой? Как я уже писал выше, кроме sshpass, можно разложить свой публичный ключь на удаленные мащины, тогда ssh будет логиниться по ключю, без ввода пароля.http://www.linuxproblem.org/art_9.html Название: Re: Реализация простого удалённого админис Отправлено: Павелъ от Январь 31, 2018, 08:21 Или всё-таки есть возможность использовать bash-скрипт текущей машины на удалённой? Как я уже писал выше, кроме sshpass, можно разложить свой публичный ключь на удаленные мащины, тогда ssh будет логиниться по ключю, без ввода пароля.http://www.linuxproblem.org/art_9.html Данный процесс можно каким-то образом автоматизировать, чтобы максимум, что требовалось от пользователя, - это "OK"? По-моему, легче реализовать соединение по sshpass, чем каждый раз при добавлении новой машины пересылать туда ключ. Но, может QProcess позволяет отвечать на вопросы программы, тогда просто можно будет "OK" каким-то образом передать. Пока, что я только считывал вывод программ в GUI. Вопрос был поставлен иначе: "могу ли я bash-скрипты текущей машины запускать на удалённой с помощью этих средств?". Сейчас на время придётся просто дописать в скриптах вначале sshpass. Название: Re: Реализация простого удалённого администрирования. Отправлено: alex312 от Январь 31, 2018, 08:35 минус sshpass'а в том, что у вас на машине будут все пароли и логины от клиентских машин. А если кто-то поменяет пароль ?
А если кто-то запретит логин попаролю ? Название: Re: Реализация простого удалённого админис Отправлено: qate от Январь 31, 2018, 12:54 Вопрос был поставлен иначе: "могу ли я bash-скрипты текущей машины запускать на удалённой с помощью этих средств?". https://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote-machine-and-include-arguments Название: Re: Реализация простого удалённого администрирования. Отправлено: ax от Февраль 01, 2018, 11:26 Может подойдет вариант - https://github.com/Russell91/sshrc (https://github.com/Russell91/sshrc)
|