Резервное копирование Home Assistant на внешний SFTP-сервер
Рассматривается использование SFTP-интеграции Home Assistant для создания резервных копий на внешнем сервере. В качестве примеров приводятся два сценария: домашний SFTP-сервер на Netcraze (Keenetic) и удалённый SFTP-сервер в Yandex Cloud.
В Telegram-канале @iot7m_ru публикуются практические заметки по Home Assistant: опыт эксплуатации устройств, интеграция с различным оборудованием, создание дашбордов и разбор типовых проблем. Многие материалы основаны на реальных запросах и консультациях. Подпишитесь на @iot7m_ru, если используете Home Assistant на практике.
Введение
Резервное копирование — один из ключевых элементов надёжной эксплуатации Home Assistant. Даже при корректных обновлениях и стабильной работе системы всегда остаются риски: сбой носителя, повреждение файловой системы, ошибка пользователя или неудачное обновление интеграций. В таких ситуациях именно резервная копия позволяет быстро вернуть систему в рабочее состояние.
Хранение резервных копий за пределами самой системы существенно снижает эти риски. Вынесенный backup не зависит от состояния хоста, SD-карты или SSD, на котором запущен Home Assistant, и остаётся доступным даже при полном отказе устройства.
В этой статье рассматривается использование SFTP-интеграции Home Assistant для создания резервных копий на внешнем сервере. В качестве практических примеров используются два сценария:
- домашний SFTP-сервер на Netcraze (новый бренд Keenetic)
- удалённый SFTP-сервер в Yandex Cloud
Базовые принципы резервного копирования, состав backup-архивов и особенности встроенного механизма Home Assistant подробно описаны в Backup & Restore в Home Assistant: как сделать резервную копию и восстановление
Как SFTP используется в Home Assistant
SFTP (SSH File Transfer Protocol) — это протокол передачи файлов поверх защищённого SSH-соединения. Он работает полностью внутри SSH-сессии, что упрощает настройку и повышает безопасность.
В контексте Home Assistant SFTP используется как внешнее хранилище для резервных копий. Home Assistant подключается к SFTP-серверу как к удалённому расположению и сохраняет туда создаваемые резервные копии.
SFTP-сервер не привязан к конкретному облачному сервису, легко автоматизируется и может быть развёрнут как локально, так и на удалённом сервере.
Домашний SFTP-сервер на Keenetic
Некоторые модели Keenetic оснащены USB-разъёмами. В интернет-центре Keenetic, при наличии возможности использования USB-накопителя, можно включить встроенный SFTP-сервер. Такой вариант подходит для вынесения резервных копий за пределы устройства с Home Assistant без развёртывания отдельного сервера. Перед настройкой необходимо убедиться, что используемая модель поддерживает подключение USB-накопителей.
Типовой сценарий выглядит следующим образом:
- к интернет-центру Keenetic подключается USB-накопитель
- на интернет-центре Keenetic включается встроенный SFTP-сервер
- при необходимости создаётся отдельный пользователь с доступом только к каталогу резервных копий
- Home Assistant подключается к этому SFTP-серверу и сохраняет туда backup-архивы
Для подключения USB-накопителя достаточно вставить USB-диск в соответствующий порт интернет-центра Keenetic. После подключения совместимого накопителя устройство автоматически распознаётся и монтируется системой. Информацию о подключённом диске можно увидеть в веб-интерфейсе Keenetic в разделе «Приложения», где накопитель отображается как доступное хранилище. Если накопитель отображается в списке устройств, это означает, что USB-диск корректно подключён и может использоваться сервисами интернет-центра, включая SFTP-сервер.
Для запуска SFTP-сервера в интернет-центре Keenetic сначала требуется установить соответствующие компоненты операционной системы KeeneticOS. Это делается в разделе «Параметры системы → Общие настройки → Обновления и компоненты», где добавляются компоненты «Сервер SSH» и «SFTP-сервер». После применения изменений устройство может быть перезагружено.
Далее в веб-интерфейсе Keenetic перейдите в раздел «Приложения» и откройте пункт «Личное облако». Здесь включается SFTP-сервер, настраивается порт SSH (по умолчанию 22) и при необходимости разрешается доступ из Интернета. Также на этом этапе задаются пользователи, которым разрешён доступ по SFTP, и выбираются каталоги на USB-накопителе, к которым эти пользователи будут иметь доступ. После настройки рекомендуется проверить работу SFTP-сервера. Проверку можно выполнить с любого компьютера в локальной сети командой:
sftp USERNAME@<HOST IP>
В качестве имени пользователя можно использовать учётную запись администратора или отдельного пользователя, а в качестве адреса сервера — IP-адрес интернет-центра Keenetic, чаще всего 192.168.1.1. Если команда выполняется успешно и вы получаете доступ к файловой системе, это означает, что SFTP-сервер настроен корректно и готов к использованию в качестве хранилища резервных копий Home Assistant.
Дополнительно доступ можно проверить через графический клиент, например FileZilla, указав те же параметры подключения: хост, порт SSH, имя пользователя и пароль.
Для повышения безопасности рекомендуется не предоставлять доступ из Интернета, а работать в контексте локальной сети, создать отдельного пользователя, предназначенного только для хранения резервных копий, и ограничить его доступ одним каталогом. Независимо от выбранной схемы, успешное выполнение команды sftp USERNAME@<HOST IP> является признаком того, что SFTP-сервер готов к дальнейшей настройке в Home Assistant. На этом этапе можно переходить к подключению SFTP-хранилища в системе.
Подводя итог, использование домашнего SFTP-сервера на Keenetic даёт следующие преимущества:
- простота и минимальные затраты
- резервные копии физически находятся на отдельном устройстве
- отсутствие зависимости от сторонних облачных сервисов
Этот вариант хорошо подходит для домашних установок и для пользователей, которым важно хранить резервные копии под своим полным контролем.
SFTP-сервер в Yandex Cloud
Использование отдельного сервера в облаке позволяет хранить резервные копии вне дома или офиса. Такой подход удобен для крупных инсталляций Home Assistant или ситуаций, когда невозможно или нежелательно организовать надёжное хранение резервных копий на локальной инфраструктуре.
В типовом сценарии:
- в Yandex Cloud создаётся виртуальная машина
- на ней настраивается SSH и SFTP-доступ
- доступ ограничивается пользователем и каталогом для резервных копий
- Home Assistant подключается к серверу по SFTP через интернет
Для организации SFTP-хранилища в Yandex Cloud в первую очередь требуется создать виртуальную машину. Процесс создания и базовой настройки виртуальной машины подробно описан в официальной документации Yandex Cloud, а также в статье Установка Home Assistant Supervised на Debian: Supervisor и Add-ons без HAOS в разделе «Создание виртуальной машины».
После создания виртуальной машины и настройки SSH-доступа достаточно проверить подключение командой, выполнив её в терминале, например:
my@local-machine ~ % sftp user@example.com
Connected to example.com.
sftp> pwd
Remote working directory: /home/user
sftp>
Если команда выполняется успешно и вы получаете доступ к файловой системе сервера, это означает, что SFTP-сервер настроен корректно и готов к использованию в качестве хранилища резервных копий Home Assistant.
Для повышения безопасности рекомендуется создать отдельного пользователя, предназначенного только для хранения резервных копий, и ограничить его доступ одним каталогом. Независимо от выбранной схемы, успешное выполнение команды sftp USERNAME@<HOST IP> является признаком того, что SFTP-сервер готов к дальнейшей настройке в Home Assistant. На этом этапе можно переходить к подключению SFTP-хранилища в системе.
Подводя итог, использование SFTP-сервера в Yandex Cloud даёт следующие преимущества:
- резервные копии размещаются в отдельном дата-центре
- высокая доступность и независимость от локальной инфраструктуры
- возможность заменить сервер без потери данных
SFTP-сервер в Yandex Cloud хорошо подходит как основной или дополнительный уровень защиты резервных копий, особенно в сочетании с локальными вариантами хранения.
Подключение SFTP-хранилища в Home Assistant
Для подключения внешнего SFTP-хранилища используется встроенная интеграция SFTP Storage.
Чтобы добавить интеграцию, в панели Home Assistant откройте:
- Настройки → Устройства и службы
- нажмите Добавить интеграцию
- в списке брендов и сервисов выберите SFTP Storage
В открывшемся окне настройки укажите параметры подключения:
- Хост — IP-адрес или доменное имя SFTP-сервера
- Порт — порт SSH/SFTP сервера (обычно 22)
- Имя пользователя — пользователь для аутентификации
- Пароль или файл закрытого SSH-ключа
- Удалённый путь — каталог на сервере для хранения резервных копий; при указании
.будет использован текущий каталог, в который выполняется вход по SFTP
При настройке параметра «Удалённый путь» важно понимать логику его работы. Ниже приведён пример SFTP-сессии:
my@local-machine ~ % sftp user@example.com
Connected to example.com.
sftp> pwd
Remote working directory: /home/user
sftp> mkdir backups
- После подключения по SFTP команда
pwdпоказывает текущий рабочий каталог пользователя — это значение эквивалентно указанию.в поле «Удалённый путь». Важно учитывать, что на интернет-центрах Keenetic этот каталог может выглядеть как путь вида/tmp/mnt/XXXXXXXX, гдеXXXXXXXX— идентификатор подключённого USB-накопителя. Несмотря на то, что путь начинается с/tmp, для KeeneticOS это штатная точка монтирования USB-диска, и она сохраняется между перезагрузками устройства до тех пор, пока накопитель не будет отключён или заменён. - Каталог
backupsсоздаётся внутри текущего рабочего каталога. Теперь в значение параметра «Удалённый путь» можно указать/home/user/backups. Для Keenetic фактический путь будет выглядеть, например, как/tmp/mnt/XXXXXXXX/backups.
При указании каталога вне домашнего каталога пользователя необходимо убедиться, что у него есть права на чтение и запись в выбранный путь.
После сохранения настроек Home Assistant проверит доступность SFTP-сервера. При успешном подключении интеграция появится в списке настроенных сервисов. При необходимости можно добавить несколько SFTP-хранилищ, например для разных серверов.
Важно учитывать, что добавление SFTP Storage само по себе не включает использование этого хранилища для резервных копий. Чтобы резервные копии начали сохраняться на SFTP-сервер, необходимо явно включить использование этого расположения в настройках резервного копирования: Настройки → Система → Резервное копирование → Настройки и история, в разделе «Расположения» включить SFTP Storage. После этого автоматические резервные копии будут сохраняться во все включённые расположения. При ручном создании резервной копии можно выбрать конкретное расположение, указав, где именно должна быть сохранена копия — локально, на SFTP или в нескольких местах одновременно.
Заключение
Использование SFTP-хранилища — надёжный способ вынести резервные копии Home Assistant за пределы системы. Домашний SFTP-сервер на Keenetic подойдёт для локальных сценариев, а размещение SFTP-сервера в Yandex Cloud — для хранения копий вне дома.
В результате вы можете чувствовать себя спокойнее и увереннее, зная, что резервные копии Home Assistant хранятся независимо от состояния основного устройства и настроек локального хранилища.
Полезные ссылки
- Подключение USB-накопителя к Keenetic — подробно описано, как подключить и настроить USB-накопитель для работы с Keenetic
- Включение SFTP-сервера на Keenetic — подробно описано, как включить и настроить SFTP-сервер на Keenetic