Заметки


Установка OpenSSH в QNX4.25

QNX4.25 — система довольно старая, но в силу некоторых обстоятельств, необходимо работать именно с ней. В силу своего возраста, в ней нет многих очень удобных вещей, включая удалённый доступ (по TCP/IP). И не просто удалённый доступ, а чтобы можно было попасть в терминал не только из другой машины под управлением QNX, но и из других систем. Да, вы скажете: «но есть же telnetd! И он входит в состав этой ОС». Telnet это конечно хорошо, но как-то уж совсем не современно, к тому же OpenSSH позволяет удалённо смонировать файловую систему, что может быть очень удобно. Итак, сегодня мы будем заводить OpenSSH.

Первоначальная проблема в том, что в QNX4.25 нет генератора псевдослучайных чисел (/dev/random, /dev/urandom), а он необходим для функционирования OpenSSH, т. к. там используется шифрование. К счастью, проблему можно решить при помощи prngd (Pseudo Random Number Generator Daemon).

Далее ничего сложного. (сложностью было откопать версию OpenSSH как можно свежее, и работающую с ним версию prngd).

Исходим из того, что стек TCP/IP 5.10 у нас уже запущен и работает.

Скачиваем два архива:

Необходимо доставить эти файлы на машину с QNX. В случае с виртуальной машиной можно, например, создать iso образ и подключить в качестве компакт-диска.


Установка PRNGD

Распакуем архив prngd.tar. Он содержит в себе бинарник и конфиг. Скопируем их на свои места, и запустим.

/etc/prngd.conf — файл конфигурации
/etc/egd-pool — unix сокет
Всё, демон запущен и работает.


Установка OpenSSH 6.8.0a

Скопируем себе openssh-6.8.0a-18_inst.sh.tar. Распакуем, и сделаем его исполняемым. Перед запуском установочного скрипта, демон prngd должен быть запущен, т. к. в процессе установки будут автоматически сгенерированы host ключи. В принципе, это можно сделать и позже, вручную, но так гораздо удобнее, правда?

Запустим установку. В случае, если всё прошло успешно, вы увидете примерно следующее:

Теперь надо немного отредактировать файл конфигурации /etc/ssh/sshd_config.

Параметр UsePrivilegeSeparation установить в no (на совести авторов порта, sandbox — не работает).

По умолчанию в QNX пользователь root без пароля, если вы хотите входить под ним по ssh, то устанавливаем параметр PermitEmptyPasswords в yes, и PermitRootLogin в yes. А это уже на вашей совести :-)

Пробуем запустить sshd (обязательно полный путь)

Кажется, всё в порядке. Пробуем подключиться:



Работает! Напоследок, добавим строки запуска в sysinit:

Перезагружаемся и проверяем: