Мне не удалось настроить SSH, однако я нашел инструмент ssocks
, подходящий для моих нужд, хотя ему немного не хватает шифрования.
Скачайте ssocks
с Sourceforge по ссылке. Затем выполните:
tar -zxvf ssocks*.tar.gz
cd ssocks-*; ./configure
make -j4
Теперь в каталоге ssocks-*/src/
должны быть клиент rcsocks
и сервер rsscoks
. Скопируйте rssocks
на машину B
Выполните следующее:
на машине A:
./rcsocks -p
на машине B:
. /rssocks --socks
Заполните
и
в соответствии с необходимостью.
Теперь socks-прокси доступен по адресу 127.0.0.1:1080
на машине A.
1) Как настроить X на игнорирование клавиатуры
Используйте lsusb
, чтобы найти ID вашего сканера штрих-кодов (в формате 0123:4567
). Создайте или измените файл xorg.conf
(обычно в /etc/X11/
). Добавьте секцию InputClass
с идентификатором, который вы только что нашли:
Section "InputClass"
Identifier "barcode"
MatchUSBID "0123:4567"
Option "Ignore" "true"
EndSection
Перезапустите X, проверьте в Xorg.log
, что ваше устройство распознано этой секцией и игнорируется.
2) Преобразование нажатий клавиш в ASCII (или другие) коды является довольно сложной задачей, позволяющей учитывать различные раскладки клавиатуры, неработающие клавиши, настройки и т.д. Теперь, когда вы отключили уровень преобразования X, вы можете получать события нажатия и отпускания клавиш от соответствующего устройства /dev/input/eventX
. Номер может меняться; для вашего считывателя штрихкодов будет существовать симлинк в /dev/input/by-id/
, который не меняется. Поэтому используйте симлинк.
Вы можете запустить evtest
на этом файле, чтобы посмотреть, какие события он генерирует. Их отображение для вашего считывателя штрих-кодов будет простым, поэтому достаточно будет поиска в таблице от keysym до ASCII-кода. Вы можете обработать эти события в своей собственной программе, см. источник evtest
или, например, здесь. Вы также можете написать небольшую программу на C, которая просто читает это устройство и выдает ASCII на stdout, а затем интегрировать ее в ваше приложение, используя pipe и т.д.
"Сопоставить его с устройством потока ASCII" невозможно, такие устройства не существуют в ядре Linux.
3) Установка разрешений
Вам нужно написать пользовательское правило udev
, чтобы установить разрешения для вашего устройства ввода. SUBSYSTEM
должен соответствовать input
, ACTION
должен соответствовать ADD
, среда ENV
должна содержать информацию, соответствующую устройству (используйте udevadm
, чтобы узнать подробности), и вы можете установить OWNER
, GROUP
и MODE
для вновь созданного устройства /dev/input/eventX
. Вот несколько общий howto, я не смог найти более конкретного. Поищите в Google более точные руководства.