Найти в Дзене
Home Assistant

Управление Keenetic (и не только) из Home Assistant OS через авторизацию по SSH-ключу (Часть 1)

Оглавление

Сатья будет написана несколькими частями.

Как итог, мы получим нечто подобное 👇

-2

Часть 1

Первое с чего стоит начать, это установить систему пакетов репозитория Entware на USB-накопитель.
Хочу заметить что в определённых случаях установка на встроенную память роутера давала нагрузку 100% на ЦП роутера, поэтому предлагаю сразу сделать как будет лучше и поставить всё на USB носитель.


Итак, ставим
Advanced SSH & Web Terminal из раздела дополнени и запускаем его

-3

Действуем по следам статьи 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 и вводим пароль:

-4

Теперь меняем права на файл id_rsa.pub (уже не помню зачем, но видимо так надо. Отпишитесь в комментариях по этому поводу, пожалуйста):

chmod 600 /root/config/.ssh/id_rsa.pub

-5

Ну а тепрь проверим, работает ли наш механизм авторизации по ключу на роутере:

ssh -i /root/config/.ssh/id_rsa -p '222' 'root@192.168.1.1' pwd

-6

Если Вы видите надпись /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

И...

-7

Механизм авторизации полностью готов и уже не слетит при перезагрузке Home Assistant 👍

Создание ssh сенсоров и переключателей vpn мы рассмотрим в следующей статье: ЧАСТЬ 2

Умный Дом Home Assistant