Собственный сервер

Резервное копирование в папку на компьютере, которым вы управляете сами, по SSH. Подойдёт сервер на Linux, NAS, Raspberry Pi, VPS, а также Mac или компьютер с Windows, на котором включён SSH-сервер. Frost использует SSH-клиент, который уже есть на вашем компьютере, поэтому на сервер ничего устанавливать не нужно.

#Перед началом

  • На сервере должны быть включены SSH и SFTP. На большинстве серверов с Linux есть и то и другое. На NAS ищите их в настройках терминала или файловых служб.
  • Нужна учётная запись на сервере, которая может записывать в выбранную папку. Хорошо завести отдельную учётную запись только для копий.
  • В Windows должен быть установлен клиент OpenSSH. Обычно он уже есть. Если нет, добавьте его в «Параметрах», в разделе «Система > Дополнительные компоненты».

#В мастере настройки

Выполните frost init и выберите Self-hosted.

Вопрос мастера Ответ
What is the server SSH address? Пользователь и хост, например [email protected], или Host из вашей конфигурации SSH. Добавьте :2222, если порт другой
Which folder on the server? По умолчанию frost, в вашей домашней папке на сервере. Полный путь вроде /srv/backups/frost тоже подойдёт

Если последней папки в пути нет, мастер создаст её. Папка, в которой она лежит, должна уже существовать.

#SSH-ключ Frost

Frost использует собственный ключ SSH, который мастер создаёт при первой настройке. Личные ключи и SSH-агент ему не нужны. Frost никогда не запрашивает пароль, поэтому запланированные копии всегда создаются с тем же способом входа.

Сервер пока не знает ключ Frost, поэтому в первый раз мастер спрашивает, как его добавить:

  • Add it for me (добавить за меня) передаёт терминал ssh. При первом подключении к серверу ssh показывает его отпечаток и спрашивает, доверяете ли вы ему. Затем он запрашивает ваш пароль на сервере, добавляет ключ Frost, и мастер продолжает работу. Пароль получает только ssh. Frost его не видит и не хранит.
  • I'll add it myself (добавлю сам) показывает, где лежит файл открытого ключа Frost. Добавьте строку из этого файла в ~/.ssh/authorized_keys на сервере и нажмите [enter].
Компьютер Открытый ключ Frost
macOS и Linux ~/.config/frost/ssh/frost_ed25519.pub
Windows %AppData%\frost\ssh\frost_ed25519.pub

Когда ключ добавляет мастер, строка начинается с restrict. Это отключает перенаправление соединений и выделение терминала, но Frost по-прежнему может читать и записывать файлы. Выполнение команд оболочки остаётся возможным, если сервер не ограничивает учётную запись протоколом SFTP.

#Добавить ключ вручную

В macOS или Linux эта команда добавляет ключ с restrict в начале и запрашивает ваш пароль на сервере:

(printf 'restrict '; cat ~/.config/frost/ssh/frost_ed25519.pub) | ssh [email protected] 'umask 077; mkdir -p .ssh; cat >> .ssh/authorized_keys'

Некоторые NAS также позволяют вставить SSH-ключ в настройках вашей учётной записи.

Сервер с Windows хранит ключи в других местах, поэтому Add it for me на нём не работает. Добавьте строку в C:\Users\<you>\.ssh\authorized_keys для обычной учётной записи или в C:\ProgramData\ssh\administrators_authorized_keys для администратора.

#Порты и конфигурация SSH

Frost читает настройки SSH из ~/.ssh/config, как и ssh. Запись Host может задавать пользователя, порт и другие параметры. Её имя можно указать вместо адреса. Frost передаёт собственный ключ, но SSH также может предложить ключи из явно заданных записей IdentityFile в вашей конфигурации.

#Полезно знать

  • Файловая система сервера должна поддерживать жёсткие ссылки. С их помощью Frost гарантирует, что два компьютера никогда не перезапишут служебные записи копий друг друга. Они есть в ext4, Btrfs, XFS, ZFS, APFS и NTFS. Мастер проверяет это при подключении.
  • Если ключ хоста сервера изменился, Frost отказывается подключаться, так же как ssh. Если вы переустановили сервер, удалите его старый ключ командой ssh-keygen -R <host> и снова выполните frost init.
  • frost status показывает, насколько заполнен диск сервера, а frost backup предупреждает, когда он почти заполнен.
  • Если папка лежит на диске, который сервер монтирует, этот диск должен быть смонтирован во время копирования. Если папки нет на месте, копирование завершается ошибкой, а не записывает данные куда-то ещё.