Простая и быстрая удаленная оболочка

0

Я ищу быстрый и простой способ удаленной оболочки для моего малинового pi (без пароля и зашифрованного как ssh), потому что мой проект требует простой команды для малины pi много раз/секунду, любые идеи предлагают? update: метод должен использоваться в C++

  • 2
    Посмотрите на использование ssh в режиме master ( ssh -M ). Это создает SSH-соединение с машиной с сокетом, который может быть использован при последующих попытках подключения, минуя необходимость повторной аутентификации.
Теги:
ssh
raspberry-pi
remote-access

1 ответ

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

Сырые TCP-сокеты. Трудно сделать это проще.

Серверная сторона:

#!/bin/bash
mkfifo /tmp/fifo.$$
netcat -l -p 12345 < /tmp/fifo.$$ | sh - &> /tmp/fifo.$$
rm /tmp/fifo.$$
  • Создание именованного канала
  • Слушайте порт 12345. При подключении прочитайте трубку и напишите на стандартный вывод.
  • Перенаправить stdout netcat в оболочку, которая записывает в канал. В основном это создает netcat <> sh duplex.

Клиентская сторона: netcat ip.address 12345

  • Принимает команды на stdin
  • Выход на stdout

Клиент также может быть реализован в C++ с помощью сокетов. Boost.Asio iostreams довольно просты. http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/example/cpp03/iostreams/daytime_client.cpp

#include <boost/asio.hpp>
boost::asio::ip::tcp::iostream s("ip.address", "12345");
s << "command\n";
s >> output;
  • 0
    У меня проблема с сервером, я копирую ваш код в abc.sh и запускаю его ./abc.sh но через некоторое время он не работает (я отображаю nmap и не вижу порта 12345), пожалуйста, помогите!

Ещё вопросы

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