LINUX.ORG.RU
решено ФорумAdmin

Shell через Serial port (COM)

 , , , ,


0

2

Здравствуйте. Пытаюсь поднять шелл через последовательный порт. Раньше я делал так: GRUB_CMDLINE_LINUX=«console=tty0 console=ttyS0,115200n8», в итоге у меня на выведеном уарт была консоль, в которую можно залогиниться и работать как будто через ssh. Но возникла потребность перевешивать консоль на другой последовательный порт, который может быть подключен в процессе работы системы. Собственно вопрос: есть и способ пробросить шелл на произвольный последовательный порт? Пробовал ssh проборосить через socat: socat -d -d tcp:127.0.0.1:22 file:/dev/ttyACM0,b9600

И, вроде, что-то начало получаться, но не полностью. При подклчении появляется «SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3 Invalid SSH identification string.»

Вобщем, пойдет любой способ: сделать все на хосте и клиент тупо подключается по юарт, настроить хост и клиент чтобы имитировать TCP для ssh или как-то еще.


каким боком тут вообще SSH

Harald ★★★★★
()

вообще традиционно это через /etc/inittab настраивалось

Harald ★★★★★
()
Ответ на: комментарий от Legioner

Не для средних умов. На уровне идеи понятно. Но как это рализуется?

Предположим, у меня есть ПК1 и ПК2. Надо подключиться с ПК2 к ПК1. Они соеденины кабелем (ПК1) [/dev/ttyACM0] USB<->UART <——–> UART<->USB [/dev/ttyUSB1] (ПК2).

На ПК1 я делаю socat -d -d tcp:127.0.0.1:22 file:/dev/ttyACM0,b9600

На ПК2 я делаю socat [что-то там] /dev/ttyUSB1,b9600 [что-то там]

Потом соединяюсь ssh [что-то там]

Вот там, где [что-то там] прошу дополнить.

Yaourt
() автор топика
Ответ на: комментарий от Yaourt

а что мешает делать всё напрямую, не задействуюя TCP

minicom -d /dev/ttyUSB1 на клиенте и /sbin/agetty -L 115200 ttyACM0 vt100 на сервере с шеллом

Harald ★★★★★
()
Ответ на: комментарий от Harald

Это изначально было моим планом. Но не работало. Висело нескоько секунд и завершалось. И знаете, это либо моя глупость, либо разработчики agetty слишком ленивые для того чтобы выкинуть ошибку по завершению… А ошибка была простая, я /sbin/agetty -L 115200 ttyACM0 vt100 без рута запускал. В общем, да. Спасибо, это то, что нужно.

Yaourt
() автор топика
Ответ на: комментарий от Yaourt

Выбираешь любой порт. Например 12022. Далее тебе нужно запустить socat так, чтобы он слушал 127.0.0.1:12022 и входящие подключения направлял на ttyUSB1. И потом подключаешься как ssh -p 12022 user@127.0.0.1

Точные опции не подскажу — не за компьютером. Думаю ман должен помочь.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.