Без ID під час реєстрації · Storage VPS від 500 GB до 8 TB · Оплата в BTC, USDT, USDC, ETH, SOL, LTC, XMR
Мова: Українська
Отримати сховище

Сервер резервного копіювання Borg · покроково

Як налаштувати сервер резервного копіювання Borg на Storage VPS?

Сервер Borg — це не більше ніж SSH-акаунт, якому дозволено виконати одну команду. Обмежте цю команду для кожного ключа, тримайте клієнтів у режимі append-only і виконуйте prune звідти, куди атакувальник не дістанеться.

Останнє оновлення: · 7 хв читання

Коротка відповідь

Як налаштувати сервер резервного копіювання Borg на VPS?

Щоб налаштувати сервер резервного копіювання Borg на VPS, встановіть Borg 1.x на обидва боки, створіть користувача borg і примусово задайте borg serve --restrict-to-path --append-only для кожного ключа клієнта. Ініціалізуйте кожен репозиторій командою repokey; prune і compact виконуйте з окремого адмінського ключа. Coffervale VPS на 1 TB коштує $1.66 на місяць за 12 місяців (2 November 2026).

Які кроки, по порядку?

  1. Встановіть однаковий Borg 1.x на сервері та клієнтах

    apt install borgbackup на Debian або Ubuntu, потім порівняйте borg --version на обох боках.

  2. Створіть користувача borg і теку для репозиторію

    Один непривілейований акаунт на VPS володіє всіма репозиторіями; клієнти ніколи не отримують shell.

  3. Примусово задайте borg serve в authorized_keys

    Один рядок на ключ клієнта, кожен обмежений власним шляхом через --restrict-to-path і --append-only.

  4. Ініціалізуйте репозиторій з repokey

    Виконайте borg init --encryption=repokey з клієнта, потім експортуйте ключ і збережіть його подалі від обох машин.

  5. Заплануйте borg create на клієнті

    Щодня через cron або systemd timer, парольну фразу зчитує BORG_PASSCOMMAND.

  6. Виконуйте prune і compact з адмінського ключа

    Другий ключ без --append-only, який використовується з довіреної машини після перевірки списку архівів.

  7. Перевіряйте репозиторій і тестуйте відновлення

    borg check щотижня, --verify-data щомісяця і справжнє borg extract кожні кілька місяців.

Яку версію Borg має запускати сервер?

Запускайте Borg 1.x з обох боків: 1.4.5 був останнім стабільним випуском на 2 листопада 2026 року, а Borg 2 досі в бета-версії. Сторінка Borg 2.0 називає його випуском із порушенням сумісності, який не є прямо сумісним із репозиторіями Borg 1.x, і перейменовує borg init на borg repo-create. На Debian 13 пакет для встановлення — borgbackup (1.4.0 у trixie); окремий пакет borgbackup2 — це бета-версія 2.0. Встановіть той самий випуск на сервер і на кожен клієнт.

На storage VPS, від імені root: Borg, користувач borg, тека для кожного клієнта
apt install borgbackup
borg --version

useradd --create-home --home-dir /srv/borg --shell /bin/sh borg
install -d -m 700 -o borg -g borg /srv/borg/.ssh /srv/borg/repos
install -d -m 700 -o borg -g borg /srv/borg/repos/laptop /srv/borg/repos/web1

Як прив'язати кожен клієнт до його власного репозиторію?

Поставте примусову команду borg serve перед кожним ключем у /srv/borg/.ssh/authorized_keys, щоб ключ міг запускати Borg і нічого більше. Ключове слово restrict блокує переадресацію портів, переадресацію агента та термінали, а документація Borg зазначає, що воно також охоплює функції SSH, додані в майбутніх випусках. Приклади припускають POSIX shell як login shell облікового запису, тому користувач вище отримує /bin/sh.

  • --restrict-to-path PATH дозволяє цей шлях і кожну теку під ним, тож один клієнт може мати кілька репозиторіїв.
  • --restrict-to-repository PATH суворіший: рівно один репозиторій, без підтек.
  • --append-only дозволяє ключу додавати архіви, але не видаляти дані з репозиторію.
  • --storage-quota 500G обмежує, скільки може зберігати один ключ, тож клієнт, що вийшов з-під контролю, не заповнить диск.

Кожен рядок залишається одним рядком у файлі; адмінський ключ у кінці не має --append-only і використовується лише для pruning.

/srv/borg/.ssh/authorized_keys (owner borg, mode 600)
command="borg serve --restrict-to-path /srv/borg/repos/laptop --append-only",restrict ssh-ed25519 AAAA...laptop-key... laptop
command="borg serve --restrict-to-path /srv/borg/repos/web1 --append-only --storage-quota 500G",restrict ssh-ed25519 AAAA...web1-key... web1
command="borg serve --restrict-to-path /srv/borg/repos",restrict ssh-ed25519 AAAA...admin-key... admin
Виправте власника після редагування, від імені root
chown borg:borg /srv/borg/.ssh/authorized_keys
chmod 600 /srv/borg/.ssh/authorized_keys

Як створити репозиторій із шифруванням repokey?

Запустіть borg init --encryption=repokey з клієнта, потім експортуйте ключ і зберігайте його поза і VPS, і машиною, яку ви бекапите. Документація Borg рекомендує repokey із надійною парольною фразою як правило; repokey-blake2 — той самий режим із хешем BLAKE2b, імовірно швидший на процесорах без апаратного прискорення SHA-256. З repokey ключ лежить у файлі config репозиторію, запечатаний вашою парольною фразою. Втратьте парольну фразу — і бекапи стануть нечитабельними і для вас, і для всіх інших. Borg також каже, що треба зберігати позасайтову копію ключа, наприклад на папері.

На клієнті (тут: ноутбук)
ssh-keygen -t ed25519 -N '' -C 'borg laptop' -f ~/.ssh/borg_ed25519

cat >> ~/.ssh/config <<'EOF'
Host coffer-borg
    HostName 203.0.113.10
    User borg
    IdentityFile ~/.ssh/borg_ed25519
    IdentitiesOnly yes
EOF

export BORG_REPO=ssh://coffer-borg/srv/borg/repos/laptop/main
borg init --encryption=repokey
borg key export --paper "$BORG_REPO" ~/borg-laptop-key.txt
/usr/local/sbin/borg-backup on a server client, run daily as root
#!/bin/sh
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main
# the passphrase file belongs to root, mode 600
export BORG_PASSCOMMAND='cat /root/.config/borg/passphrase'

borg create --stats --compression zstd,3 \
    ::'{hostname}-{now:%Y-%m-%dT%H:%M}' \
    /etc /home /var/www

Як виконати prune і compact для репозиторію в режимі append-only?

Із довіреної адмінської машини, ключем без --append-only, після перевірки, що жоден архів не зник. У режимі append-only, як пояснюють нотатки Borg, prune і delete все ще виконуються, але лише позначають дані як видалені в новій транзакції, а compact ніколи не відбувається, без попередження і без помилки. Місце в репозиторії не звільняється, доки не запуститься borg compact із ключа, якому дозволено перезаписувати.

Ті самі нотатки містять підступ: перший запис у звичайному режимі робить кожне попереднє видалення остаточним, включно з тим, яке зловмисник зробив через клієнтський ключ. Тож спершу перелічіть архіви. Якщо якихось бракує, зупиніться і виконайте кроки відновлення з нотаток Borg про append-only, перш ніж щось prune-ити. Cron-завдання, що автоматично виконує prune з необмеженим ключем, робить append-only безглуздим. Документація Borg також рекомендує --dry-run з --list перед кожним справжнім prune.

На адмінській машині, Host coffer-admin з адмінським ключем
export BORG_REPO=ssh://coffer-admin/srv/borg/repos/web1/main

borg list
borg prune -v --list --dry-run --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6
borg compact

Як перевірити репозиторій і довести, що відновлення працює?

Запускайте borg check щотижня, borg check --verify-data щомісяця, і кожні кілька місяців видобувайте реальні файли на іншу машину. Звичайна перевірка перевіряє репозиторій і метадані архіву. --verify-data читає, розшифровує і розпаковує кожен чанк, що Borg називає дуже тривалим, і на жорстких дисках це справді так. Для великого репозиторію --repository-only --max-duration 3600 розбиває перевірку репозиторію на годинні частини, які продовжуються з місця зупинки. Ніщо з цього не замінює справжнього відновлення: бекап хороший настільки, наскільки добрим був останній раз, коли ви дістали з нього дані.

Перевірки і тестове відновлення, з клієнта
export BORG_REPO=ssh://coffer-borg/srv/borg/repos/web1/main

borg check -v
borg check -v --verify-data
borg check -v --repository-only --max-duration 3600

mkdir -p /tmp/restore-test && cd /tmp/restore-test
borg list
borg extract --list ::web1-2026-11-02T03:00 etc/nginx

Скільки коштує Borg-ціль порівняно з хостинговим Borg-сховищем?

За оглядом Coffervale від 2 листопада 2026 року, хостингове Borg-сховище коштувало $9.17 за TB на місяць у BorgBase (тариф Medium на 1 TB, $110.00 на рік) і $15.00 за TB у rsync.net, тоді як тарифи Storage VPS від хостів, що приймають криптовалюту без документа, що посвідчує особу, мали медіану $4.00 за TB. Хостингові сервіси запускають сервер за вас; Storage VPS дає вам root і налаштування вище — вибір, зважений у Чи є Storage VPS дешевшою альтернативою rsync.net або BorgBase?. Ми не робимо бекапів вашого сервера й не зберігаємо копію ваших даних деінде, тож те, що лежить на storage VPS у Coffervale, має бути однією з ваших копій, але ніколи не єдиною, тож Borg-сервер — це одна копія серед кількох, як пояснює Як використовувати VPS для позасайтових бекапів?. Тариф на 1 TB детально описано в Де взяти VPS із 1 TB сховища?, а якщо ви віддаєте перевагу restic, читайте Restic: REST-сервер чи SFTP для бекапів на VPS?. Щоб зашифрувати ще й диск VPS, дивіться Як змонтувати і відформатувати диск сховища на Linux VPS?.

Borg-цілі за TB на місяць, 2 листопада 2026 року

Borg-цільЗа TB на місяцьЩо ви запускаєте саміОплата в криптовалюті
BorgBase Medium, 1 TB$9.17 ($110.00 на рік)Нічого: хостингові репозиторії Borg і resticНе вказано
rsync.net, тариф від 0 до 9 TB$15.00Нічого: сховище ZFS, доступне через SSHНе вказано
Storage VPS, медіана 99 тарифів$4.00Borg-сервер, налаштований на цій сторінціТак: хости, що приймають криптовалюту без документа, що посвідчує особу
Coffervale Clay, 1 TB$1.66 на 12 місяцівBorg-сервер, налаштований на цій сторінціBTC, USDT, USDC, ETH, SOL, LTC, XMR

Ціни перевірено

Ціни, як прочитано на власній сторінці кожного сервісу 2 листопада 2026 року. BorgBase виставляє рахунок за тарифом Medium щороку і вказує ціни без VAT; медіана Storage VPS охоплює тарифи від 500 GB, у наявності й з місячною оплатою.

Запитання про Borg-сервер бекапів

Чи потрібна клієнту і серверу однакова версія Borg?

Тримайте обидва на Borg 1.x, бажано на однаковому випуску. Borg 2 досі в бета-версії, використовує новий формат репозиторію і не може відкривати репозиторії 1.x напряму. На Debian 13 встановлюйте borgbackup, а не borgbackup2.

Використовувати --restrict-to-path чи --restrict-to-repository?

--restrict-to-path дозволяє теку і все під нею — зручно, коли один клієнт тримає кілька репозиторіїв. --restrict-to-repository дозволяє рівно один репозиторій і без підтек — суворіший вибір, коли в кожного клієнта один репозиторій.

Чому мій репозиторій не зменшується після borg prune?

Prune лише позначає архіви як видалені; місце звільняє borg compact. Через append-only ключ compact взагалі не запускається, тож prune і compact робіть з адмінського ключа.

Чи може один Storage VPS тримати Borg-репозиторії для кількох машин?

Так. Кожній машині — окремий рядок ключа в authorized_keys, власний шлях і, якщо диск спільний, власний --storage-quota. Тоді один скомпрометований клієнт дістанеться лише одного репозиторію.

Що буде, якщо я втрачу парольну фразу Borg?

Репозиторій стане нечитабельним назавжди. Borg не зможе його відновити, і хост теж. Тримайте парольну фразу в менеджері паролів, а експортований ключ — на папері, окремо від VPS і клієнта.

Джерела (13)
  1. Документація Borg 1.4.5: Hosting repositories — BorgBackup project (read 2026-11-02)
  2. Документація Borg 1.4.5: borg serve (restrict options, append-only, storage quota) — BorgBackup project (read 2026-11-02)
  3. Документація Borg 1.4.5: borg init (режими шифрування, резервна копія ключа) — BorgBackup project (read 2026-11-02)
  4. Документація Borg 1.4.5: borg prune — BorgBackup project (read 2026-11-02)
  5. Документація Borg 1.4.5: borg compact — BorgBackup project (read 2026-11-02)
  6. Документація Borg 1.4.5: borg check — BorgBackup project (read 2026-11-02)
  7. Документація Borg 1.4.5: Additional notes, append-only mode — BorgBackup project (read 2026-11-02)
  8. Документація Borg 1.4.5: Quick start (BORG_PASSCOMMAND) — BorgBackup project (read 2026-11-02)
  9. Borg 2.0 (попередня інформація) — BorgBackup project (read 2026-11-02)
  10. Релізи BorgBackup (1.4.5 — останній, 2.0.0b25 — попередній випуск) — BorgBackup project on GitHub (read 2026-11-02)
  11. Пакети Debian trixie: borgbackup 1.4.0, borgbackup2 2.0.0b19 — Debian (read 2026-11-02)
  12. Плани та ціни borgbase.com — BorgBase (read 2026-11-02)
  13. Ціни на хмарне сховище rsync.net/pricing.html — rsync.net (read 2026-11-02)

Від $1.24/місяць · без KYC

Отримати сховище