Russian Qt Forum
Декабрь 10, 2019, 12:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Реализация простого удалённого администрирования.  (Прочитано 1909 раз)
Павелъ
Самовар
**
Offline Offline

Сообщений: 105



Просмотр профиля
« : Январь 30, 2018, 16:00 »

Доброго времени суток.

Необходимо обработать вывод bash-скриптов на стороне клиента (с получением информации на сервер).

Есть 2 подхода.

1) Использовать программу-клиент, которая будет запущена на устройстве и по tcp получать команды на запуск bash скриптов с дальнейшим отправлением обработанной информации серверу.
2) Использовать подключение по ssh или telnet.

Первый вариант я реализую.

Остаётся разобраться, как работать со вторым.

Тут я столкнулся с трудностями. Запустить выполнение bash-скрипта на серверной машине проблем нет. QProcess - readAll().

А как быть с удалённым запуском? Ручками подключиться через терминал по ssh к клиенту легко. Перед тобой полноценный терминал, где ты можешь выполнять те же команды, что и на серверной машине.

А через QProcess это сделать возможно?
1) Генерация ключа.
2) Ввод пароля (от этого пункта можно избавиться).
3) Отправка команд на выполнение вместе с подключением.

Можно как-то реализовать такое подключение и получение информации в виде одного bash-скрипта, в котором на вход поступали бы адрес хоста, логин, пароль, команда с параметрами, а на выходе после закрытия соединения выдавалась бы полученная от программы информация?

Может telnetom это легче реализовать, или есть другие способы?
Записан
alex312
Программист
*****
Offline Offline

Сообщений: 567



Просмотр профиля
« Ответ #1 : Январь 30, 2018, 19:07 »

ssh может выполнять команды на удаленной машине.
Код
ssh user@192.168.1.xxx /usr/bin/uname -a
 
Что бы постоянно не вводить пароль нужно на все нужные машины разложить открытый ключ.
Либо пользовать sshpass
Записан
Павелъ
Самовар
**
Offline Offline

Сообщений: 105



Просмотр профиля
« Ответ #2 : Январь 30, 2018, 23:05 »

ssh может выполнять команды на удаленной машине.
Код
ssh user@192.168.1.xxx /usr/bin/uname -a
 
Что бы постоянно не вводить пароль нужно на все нужные машины разложить открытый ключ.
Либо пользовать sshpass


sshpass - хорошая вещь, спасибо.

Только имеющиеся bash-скрипты в файлах на текущей машине не получится использовать для запросов на стороне удалённой машины.

Код:
sshpass -p 'yourpassword' ssh -o StrictHostKeychecking=no join@IP "command"
Придётся писать ещё набор скриптов, где перед началом имеющихся запросов вставлять sshpass. Или всё-таки есть возможность использовать bash-скрипт текущей машины на удалённой?
Записан
alex312
Программист
*****
Offline Offline

Сообщений: 567



Просмотр профиля
« Ответ #3 : Январь 31, 2018, 08:05 »

Или всё-таки есть возможность использовать bash-скрипт текущей машины на удалённой?
Как я уже писал выше, кроме sshpass, можно разложить свой публичный ключь на удаленные мащины, тогда ssh будет логиниться  по ключю, без ввода пароля.

http://www.linuxproblem.org/art_9.html
Записан
Павелъ
Самовар
**
Offline Offline

Сообщений: 105



Просмотр профиля
« Ответ #4 : Январь 31, 2018, 08:21 »

Или всё-таки есть возможность использовать bash-скрипт текущей машины на удалённой?
Как я уже писал выше, кроме sshpass, можно разложить свой публичный ключь на удаленные мащины, тогда ssh будет логиниться  по ключю, без ввода пароля.

http://www.linuxproblem.org/art_9.html


Данный процесс можно каким-то образом автоматизировать, чтобы максимум, что требовалось от пользователя, - это "OK"?

По-моему, легче реализовать соединение по sshpass, чем каждый раз при добавлении новой машины пересылать туда ключ.
Но, может QProcess позволяет отвечать на вопросы программы, тогда просто можно будет "OK" каким-то образом передать. Пока, что я только считывал вывод программ в GUI.

Вопрос был поставлен иначе: "могу ли я bash-скрипты текущей машины запускать на удалённой с помощью этих средств?".

Сейчас на время придётся просто дописать  в скриптах вначале sshpass.
Записан
alex312
Программист
*****
Offline Offline

Сообщений: 567



Просмотр профиля
« Ответ #5 : Январь 31, 2018, 08:35 »

минус sshpass'а в том, что у вас на машине будут все пароли и логины от клиентских машин. А если кто-то поменяет пароль ?
А если кто-то запретит логин попаролю ?
Записан
qate
Птица говорун
*****
Offline Offline

Сообщений: 980


Просмотр профиля
« Ответ #6 : Январь 31, 2018, 12:54 »

Вопрос был поставлен иначе: "могу ли я bash-скрипты текущей машины запускать на удалённой с помощью этих средств?".

https://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote-machine-and-include-arguments
Записан
ax
Чайник
*
Offline Offline

Сообщений: 60


Просмотр профиля
« Ответ #7 : Февраль 01, 2018, 11:26 »

Может подойдет вариант - https://github.com/Russell91/sshrc
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.062 секунд. Запросов: 24.