Сатья будет написана несколькими частями.
- Первая часть расскажет как настроить механизм авторизации на роутере по SSH без пароля.
- Вторая часть расскажет о настройке ssh сенсоров и переключателей (свичей) в Home Assistant. Их мы будем использовать для работы с VPN и политиками доступа в самом Keenetic.
Как итог, мы получим нечто подобное 👇
Часть 1
Первое с чего стоит начать, это установить систему пакетов репозитория Entware на USB-накопитель.
Хочу заметить что в определённых случаях установка на встроенную память роутера давала нагрузку 100% на ЦП роутера, поэтому предлагаю сразу сделать как будет лучше и поставить всё на USB носитель.
Итак, ставим Advanced SSH & Web Terminal из раздела дополнени и запускаем его
Действуем по следам статьи https://sprut.ai/client/blog/3440, актуализировав несколько пунктов.
Вводим в окне аддона Advanced SSH & Web Terminal следущие команды последовательно:
cd config
mkdir .ssh
ssh-keygen
На первый вопрос указываем путь /root/config/.ssh/id_rsa, остальные можно пропустить просто нажав на enter.
Далее вводим:
cat /root/config/.ssh/id_rsa.pub | ssh -p 222 root@192.168.1.1 "cat > /opt/etc/dropbear/authorized_keys && chmod 600 /opt/etc/dropbear/authorized_keys"
Отвечаем на вопрос Yes и вводим пароль:
Теперь меняем права на файл id_rsa.pub (уже не помню зачем, но видимо так надо. Отпишитесь в комментариях по этому поводу, пожалуйста):
chmod 600 /root/config/.ssh/id_rsa.pub
Ну а тепрь проверим, работает ли наш механизм авторизации по ключу на роутере:
ssh -i /root/config/.ssh/id_rsa -p '222' 'root@192.168.1.1' pwd
Если Вы видите надпись /opt/root, комманда выполнилась на удалённом хосте (роутере) успешно!
Теперь нам нужно передвинуть файл known_hosts в папку /root/config/.ssh/:
Это нужно чтобы HA OS не затирало его после каждой перезагрузки
mv /root/.ssh/known_hosts /root/config/.ssh/known_hosts
И, наконец, редактируем файл конфигурации нашего механизма авторизации:
vi /root/config/.ssh/conf
В редакторе vi нажимам "i" для начала ввода и копируем строки ниже:
Host hass
HostName 192.168.1.1
User root
Port 222
IdentityFile /root/config/.ssh/id_rsa
UserKnownHostsFile /root/config/.ssh/known_hosts
После копирования нажимаем:
ESC
вводим :wq - команда записи файла, с поcледующем выходом из редактора (двоеточие и буквы wq)
Enter
Проверяем работу нашего механизма командой
ssh -F /root/config/.ssh/conf hass pwd
И...
Механизм авторизации полностью готов и уже не слетит при перезагрузке Home Assistant 👍