Запуск клиента последовательного порта после входа в систему через SSH-сервер

Headless RDP (сервер протокола удаленного рабочего стола )в системе на базе Ubuntu 16+.

Программное обеспечение:

Установите Mint 18 и обновите его.

Установите сервер ssh, чтобы сделать жизнь намного проще:apt-get install openssh-server

Пользовательская компиляция xrdp и xorgxrdp , поскольку репозитории Mint не включают или не имеют необходимой нам конфигурации.

Настройте Mint для компиляции, установив среду сборки .

sudo apt-get install build-essential

sudo apt-get install git autoconf libtool pkg-config gcc g++ make  libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev  flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev

примечание :Я думаю, что для Ubuntu 16+ требуется еще 1 зависимость. Я не вижу этого в своих заметках, но вы очень быстро узнаете, когда «сделаете».

нашел:

sudo apt-get install libxfont1-dev

примечание :Для xorgxrdp требуется заголовочный файл от xrdp. Поэтому желательно сначала скомпилировать и установить xrdp.

получить и извлечь xrdp и xorgxrdp куда-нибудь вроде /opt. Возможно, здесь нужно настроить разрешения. Плохая форма, но работает:sudo -R chmod 777 /opt

Запустите следующие команды cli:

xrdp

cd /opt/xrdp-0.9.1

./bootstrap

./configure --enable-fuse --enable-mp3lame --enable-painter

примечание:

  • --включить -рисовальщик для подключения rdp-клиента Win10.
  • --включить -предохранитель для перенаправления диска и буфера обмена
  • --включить -mp3lame Сборка lame mp3 (аудиокодек)

make

sudo make install

sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin

xorgxrdp

cd /opt/xorgxrdp-devel

./bootstrap

./configure

make

sudo make install

Сделайте xrdp и xorgxrdp «службой», чтобы она запускалась при загрузке.

версия

/etc/init.d/xrdp(из установки. включить запуск при загрузке)

sudo update-rc.d xrdp defaults--создает ссылки в каталогах rc.x

sudo update-rc.d xrdp enable--начни прямо сейчас.

Версия

> Ubuntu 14 (Mint 18)

sudo systemctl enable xrdp

sudo service xrdp start

sudo systemctl status xrdp

sudo systemctl start xrdp

Конфигурационные файлы (некоторые)

/etc/xrdp/sesman.ini

/etc/xrdp/xrdp.ini

/etc/xrdp/startwm.sh

Это настройка в /etc/xrdp/xrdp.ini, которую мы будем использовать:

[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

Не забудьте использовать другие или несколько рабочих столов. В этих файлах наряду с другими могут потребоваться корректировки. См. здесь для небольшой помощи в этом. При использовании рабочего стола Cinnamon никаких изменений не потребовалось.

Чтобы ваш Mint 18.x загружался из командной строки, в конце концов, это безголовая система.

Загрузка из командной строки

sudo nano /etc/default/grub

закомментируйте GRUB_CMDLINE_LINUX_DEFAULT=и добавьте «текст» к GRUB_CMDLINE_LINUX, как показано ниже:

#GRUB_CMDLINE_LINUX_DEFAULT=""

GRUB_CMDLINE_LINUX="text"

sudo update-grub

sudo systemctl set-default multi-user.target

Для запуска графического интерфейса из командной строки:

startx

Чтобы отменить изменение:

sudo systemctl set-default graphical.target

2
31.10.2019, 12:51
1 ответ

Напишите небольшой сценарий, который подключает сеанс терминала на сервере SSH к последовательному порту без каких-либо параметров командной строки. Например, вы можете использовать команду cuследующим образом:

#!/bin/sh
exec cu -l /dev/ttyS0 -s 115200  # add/modify options if needed

Сохраните это, например. /usr/local/bin/serial-connectionи пометьте его как исполняемый с помощью chmod a+x /usr/local/bin/serial-connection.

Добавьте путь /usr/local/bin/serial-connectionк файлу /etc/shells.

Создайте пользователя Linux для последовательного соединения. Вы можете назвать его как хотите -, например, serial. Установите для него пароль и убедитесь, что пользователь может нормально войти в систему.

Наконец, измените оболочку пользователя serialна /usr/local/bin/serial-connection:

.
chsh -s /usr/local/bin/serial-connection serial

Теперь, когда пользователь serialвходит в систему, оболочка пользователя запускается автоматически -, но теперь это будет фактически команда, которая подключает сеанс SSH к последовательному порту. И если эта команда по какой-либо причине завершится, сеанс SSH завершится автоматически.

Чтобы разорвать соединение, пользователю serialнеобходимо ввести~.(тильда -точка ), если используется PuTTY или аналогичный, или~~.(тильда -тильда -точка )при использовании клиента OpenSSH. Случайно, как cu, так и клиент OpenSSH будут использовать ~в качестве escape-символа :, набрав его дважды в начале строки, будет выдан один символ тильды для cu.

3
27.01.2020, 22:08

Теги

Похожие вопросы