Entware - пример настройки и использования Openssh сервера

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1913
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 14 дек 2015, 16:09

Настройка и использование openssh сервера почему то иногда вызывает затруднения. Использование openssh сервера вполне оправдано на НАСах. Часто такие инструкции написаны для Optware. Наверное в этом и причина затруднений.

Для использования openssh его сначала нужно его поставить командой `opkg install openssh-server`

Код: Выделить всё

~ # opkg install openssh-server
Installing openssh-server (7.1p1-1) to root...
Downloading http://entware.zyxmon.org/binaries/mipsel/openssh-server_7.1p1-1_mipselsf.ipk.
Installing openssh-keygen (7.1p1-1) to root...
Downloading http://entware.zyxmon.org/binaries/mipsel/openssh-keygen_7.1p1-1_mipselsf.ipk.
Configuring openssh-keygen.
Configuring openssh-server.

Конфигурация сервера находится в файле /opt/etc/ssh/sshd_config. Я бы порекомендовал на время тестирования не отключать имеющийся ssh сервер, а настроить openssh на нестандартный порт, например 2222. Для этого отредактируем файл /opt/etc/ssh/sshd_config. Уберем коментарий со строки

Код: Выделить всё

#Port 22

и заменим ее на

Код: Выделить всё

Port 2222

Для того, чтобы пользователь root мог заходить по ssh добавим (отредактируем) строку

Код: Выделить всё

PermitRootLogin yes

Теперь создадим ключи командой ` ssh-keygen -A`

Код: Выделить всё

~ # ssh-keygen -A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519

openssh сервер может работать только от имени пользователя sshd. Создадим его командой

Код: Выделить всё

adduser -h /tmp -s /bin/false -S -D -H sshd

Замечание 1 Если в вашей системе нет команды adduser, установите busybox: `opkg install busybox`.
Замечание 2 Предполагается, что файл с паролями и именами пользователей (/etc/passwd) открыт на запись. Это так в Tomato, Asuswrt, DD-WRT и других.
Замечание 3 Если пользователь sshd не создается, создайте группу sshd (командой addgroup) и в команду создания пользователя добавить в конце `-G sshd`.

После этих несложных манипуляций можно запустить сервер и проверить его работу:

Код: Выделить всё

~ # /opt/etc/init.d/S40sshd start
starting sshd...

Не забываем при проверках, что сервер запущен на нестандартном порту.
Если все работает, то для тех случаев (Tomato, AsusWrt и т.д.), когда файл /etc/passwd располжен в tmpfs (в оперативной памяти) следует добавить создание пользователя sshd прямо в скрипт /opt/etc/init.d/S40sshd после строки PATH=... Для этого добавим в начало этого файла проверку и создание пользователя

Код: Выделить всё

egrep  -i "^sshd:" /etc/passwd > /dev/null
if [ $? -eq 1 ]; then
   adduser -h /tmp -s /bin/false -S -D -H sshd
fi

Если все работает, можно отключать встроенный ssh сервер и переходить на openssh. Можно вернуть в этом случае порт на стандартный 22.

Bvac
Сообщения: 3
Зарегистрирован: 17 апр 2016, 16:48

Сообщение Bvac » 17 апр 2016, 20:14

Здравствуйте, спасибо за инструкцию, все остальные что только смог найти действительно для optware.
Установленые у меня пакеты openssh-keygen - 7.2p2-1 openssh-server - 7.2p2-1 openssh-sftp-server - 7.2p2-1, согласно вашей инструкции настроил Openssh сервер, но при подключении к роутеру через filezilla с учетной записью root пользователя/пароля не удается авторизоваться.
Роутер asus rt-n56u (firmware Padavan)
Логи роутера:
    Apr 17 19:28:47 sshd[996]: Failed password for admin from 192.168.1.224 port 52138 ssh2
    Apr 17 19:28:47 sshd[996]: error: Received disconnect from 192.168.1.224 port 52138:13: Unable to authenticate [preauth]
    Apr 17 19:28:47 sshd[996]: Disconnected from 192.168.1.224 port 52138 [preauth]
filezila
    Команда: open "admin@*e.asuscomm.com" 22
    Команда: Принять новый ключ хоста: Однажды
    Команда: Pass: ***************
    Ошибка: Сбой аутентификации.
    Ошибка: Критическая ошибка: Невозможно подключиться к серверу

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1913
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 17 апр 2016, 20:35

Bvac писал(а):Источник цитаты с учетной записью root

Bvac писал(а):Источник цитаты Failed password for admin

Вы уж сначала разберитесь с root/admin. Есть ли у Вас запись в /etc? В следующий раз указывайте модель железки!

Bvac
Сообщения: 3
Зарегистрирован: 17 апр 2016, 16:48

Сообщение Bvac » 17 апр 2016, 20:59

Запись admin с root правами,
Zyxmon писал(а):Источник цитаты Есть ли у Вас запись в /etc?
учетная запись? нет, я думал используеться учетка системы.
Bvac писал(а):Источник цитаты Роутер asus rt-n56u (firmware Padavan)

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1913
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 17 апр 2016, 21:19

На прошивке Падавана все работает.
1. Не нужно создавать пользователя sshd
2. Инструкция написана для входа по ssh под обычным юзером. Для входа под rood/admin следует это разрешить в конфиге

Код: Выделить всё

PermitRootLogin yes

Bvac
Сообщения: 3
Зарегистрирован: 17 апр 2016, 16:48

Сообщение Bvac » 17 апр 2016, 22:03

Спасибо! всё заработало, забыл убрать комментирование в файле конфигурации :oops:
Подскажите ещё пожалуйста как теперь добавить пользователей с доступом к каталогу на ftp через openssh-sftp-server.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1913
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 17 апр 2016, 22:06

Bvac, права в ssh никак не связаны с ftp. Прошивка Падавана забудет всех созданных пользователей при перезагрузке.
Тут посоветую изучит поглубже Linux для решения подобных задач.

steils
Сообщения: 4
Зарегистрирован: 07 фев 2016, 21:59

Сообщение steils » 19 июн 2016, 10:05

После выполнения команды:

Код: Выделить всё

~ # adduser -h /tmp -s /bin/false -S -D -H sshd

выдает:

Код: Выделить всё

adduser: unknown group nogroup

Команда:

Код: Выделить всё

~ # /opt/etc/init.d/S40sshd start

дает результат:

Код: Выделить всё

starting sshd...
Privilege separation user sshd does not exist

Что не так?

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1913
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 19 июн 2016, 10:18

steils писал(а):Источник цитаты Что не так?

Инструкция проверена на НАСах QNAP. У Вас какая модель и прошивка?
steils писал(а):Источник цитаты Privilege separation user sshd does not exist

У гугла спрашивали?

PS Добавил в инструкцию пару пунктов. Возможно охватывает и случай Вашего, неизвестного мне устройства с неизвестной прошивкой.

quicktrick
Сообщения: 6
Зарегистрирован: 21 фев 2018, 16:36

Сообщение quicktrick » 21 фев 2018, 16:46

Zyxmon, здравствуйте! Подскажите, пожалуйста, почему в Openssh альтернативного пакета Entware-3x не работает команда smb2status?

Код: Выделить всё

# smb2status
/opt/bin/sh: smb2status: not found
# echo $PATH
/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

В то время, как в родном ssh она работает:

Код: Выделить всё

# smb2status
smbd (samba daemon) Version 4.0.25
smbd (samba daemon) is running.
max protocol SMB 3 enabled.

Я, кстати, не нашел файла этой программы нигде по указанным в PATH директориям. Это что, системная команда? Почему тогда она не работает в альтернативной ssh?


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 8 посетителей :: 1 зарегистрированный, 0 скрытых и 7 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33

Сейчас этот форум просматривают: CommonCrawl [Bot] и 7 гостей