Для использования 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.