Архивиране и възстановяване на SSH ключове

Кратко описание: Практическо, подробно ръководство как да архивираш, криптираш и безопасно възстановяваш SSH частни ключове. Подходящо за лични резервни копия и за споделяне с колеги.
1. Въведение
SSH частните ключове са входът към сървъри и услуги. Загубата или компрометирането им може да доведе до сериозни проблеми. Това ръководство показва сигурна процедура: криптиране на копие, архивиране на външен носител, тест на възстановяване и тогава — евентуално — изтриване на оригинала.
Цел: да сведеш до минимум риска от загуба или компрометиране, като винаги имаш тестван резервен екземпляр.
2. Предпоставки
- Локална работна машина с
openssl,zip(или7z),shred,ssh-keygen. - Външен носител (флашка, външен диск) или сигурно облачно хранилище.
- Достъп до команден ред (bash) и права да четеш
~/.ssh. - Създай временна работна папка, например
~/key_backup_tmp.
3. Модел на заплахи (кратко)
- Неоторизиран достъп до носителя — решава се чрез криптиране с парола.
- Загуба по време на трансфер — решава се чрез проверка/тест на архива преди изтриване.
- Остатъци след изтриване на SSD/COW FS — shred може да не е напълно ефективен.
4. Общ принцип (безопасен работен поток)
- Направи локално копие на ключа.
- Криптирай копието (openssl или gpg).
- Архивирай криптираните файлове (7z с AES-256 предпочитано пред zip).
- Копирай архива на външен носител.
- Тествай възстановяването в отделна временна директория. Проверка на отпечатъка на ключа.
- Ако всичко е наред — изтрий оригинала (и/или локалните копия). Ако не — не изтривай.
5. Подробни стъпки с команди
Всички команди приемат, че работиш като обикновен потребител и ключът се намира в
~/.ssh/bahmammamu.
5.1 Подготвителни операции
mkdir -p ~/key_backup_tmp
chmod 700 ~/key_backup_tmp
5.2 Направи локално копие (никога не работи директно върху оригинала)
cp ~/.ssh/bahmammamu ~/key_backup_tmp/bahmammamu.orig
chmod 600 ~/key_backup_tmp/bahmammamu.orig
5.3 Криптирай копието (вариант с OpenSSL)
openssl enc -aes-256-cbc -salt -pbkdf2 -in ~/key_backup_tmp/bahmammamu.orig -out ~/key_backup_tmp/bahmammamu.enc
# ще те пита за парола — запомни/съхрани я сигурно
Бележка: -pbkdf2 подобрява устойчивостта към brute-force. Можеш да използваш и gpg (симетрично) или 7z вътре в архива.
5.4 Архивирай криптирания файл (препоръчителен: 7z)
# Ако имаш 7z:
7z a -p -mhe=on ~/key_backup_tmp/bahmammamu.7z ~/key_backup_tmp/bahmammamu.enc
# Ако нямаш 7z, използвай zip:
zip -e ~/key_backup_tmp/bahmammamu.zip ~/key_backup_tmp/bahmammamu.enc
-pще те попита парола за архива.-mhe=onскрива имената на файловете в архива (7z).
5.5 Копирай архива на външен носител
# Пример (адаптирай името на устройството/пътя):
cp ~/key_backup_tmp/bahmammamu.7z /media/$USER/ИМЕ_НА_ФЛАШКА/
5.6 Тествай архива преди да докоснеш оригинала
На текущата машина или на другата машина бързо провери целостта:
# за 7z:
7z t /media/$USER/ИМЕ_НА_ФЛАШКА/bahmammamu.7z
# за zip:
unzip -t /media/$USER/ИМЕ_НА_ФЛАШКА/bahmammamu.zip
Ако t и -t върнат успешен резултат — архивът е четим.
5.7 Тест на възстановяване (важно!)
На тестова машина (или в отделна временна папка):
mkdir -p ~/tmp_bah && cd ~/tmp_bah
# Разархивирай
7z x /media/$USER/ИМЕ_НА_ФЛАШКА/bahmammamu.7z
# Или unzip за zip
# Декриптирай
openssl enc -d -aes-256-cbc -pbkdf2 -in bahmammamu.enc -out bahmammamu
# Провери отпечатъка на ключа
ssh-keygen -y -f bahmammamu > bahmammamu.pub
ssh-keygen -lf bahmammamu.pub
# Сравни отпечатъка с този от оригинала (ако го имаш записан).
Ако съвпада — възстановяването е успешно.
5.8 След като тестът е успешен — изтрий оригинала (по избор)
# Ако искаш overwrite (за традиционни HDD):
shred -u ~/.ssh/bahmammamu
# Ако е SSD или файловата система е copy-on-write (btrfs, ZFS), shred може да не е ефективен.
# В този случай можеш да изтриеш и да разчиташ на криптирания резерв, или да използваш физическо унищожение.
rm ~/.ssh/bahmammamu
5.9 Почисти временните файлове локално
rm -rf ~/key_backup_tmp
rm -rf ~/tmp_bah
6. Полезни съвети и бележки
- Винаги тествай възстановяване преди изтриване.
- Дръж паролите за
openssl/архива в мениджър на пароли, а не в plain-text файлове. - Използвай различни пароли за криптиране и архивиране (два слоя защита).
- Ако ще пазиш ключовете дългосрочно, разгледай
gpg --symmetricилиsops/KMS решения. - Помисли за хардуерни токени (YubiKey) за ключове с критична важност.
- За съвместимост:
ssh-keygen -y -f keyизвежда публичния ключ; можеш да сравняваш отпечатъци.
7. Алтернативи и допълнителни инструменти
- GnuPG (gpg) — симетрично криптиране:
gpg --symmetric --cipher-algo AES256 ~/key_backup_tmp/bahmammamu.orig
- 7z — силно архивиране с AES-256 и възможност да скриеш имената на файловете:
7z a -p -mhe=on bahmammamu.7z bahmammamu.enc
- sops или управление на ключове чрез KMS (AWS KMS, GCP KMS) — за по-големи екипи и автоматизация.
8. Скрипт за автоматизация (пример)
#!/usr/bin/env bash
set -euo pipefail
KEY=~/.ssh/bahmammamu
TMPDIR=~/key_backup_tmp
ARCHIVE_NAME=bahmammamu.7z
DEST=/media/$USER/ИМЕ_НА_ФЛАШКА/
mkdir -p "$TMPDIR"
cp "$KEY" "$TMPDIR/bahmammamu.orig"
chmod 600 "$TMPDIR/bahmammamu.orig"
openssl enc -aes-256-cbc -salt -pbkdf2 -in "$TMPDIR/bahmammamu.orig" -out "$TMPDIR/bahmammamu.enc"
7z a -p -mhe=on "$TMPDIR/$ARCHIVE_NAME" "$TMPDIR/bahmammamu.enc"
cp "$TMPDIR/$ARCHIVE_NAME" "$DEST"
# Тествай архива
7z t "$DEST/$ARCHIVE_NAME"
# По избор: почисти локалните временни файлове
rm -rf "$TMPDIR"
echo "Архивиране успешно. Тествай възстановяване преди да изтриеш оригинала."
Забележка: скриптът не изтрива оригинала. Изтриването трябва да е съзнателна стъпка след успешен тест.
9. Чеклист преди окончателно изтриване на оригинала
- Архивът е успешно записан на външен носител.
- Команда
7z t/unzip -tвръща успешен резултат. - Успешно възстановяване в
~/tmp_bahи отпечатъкът съвпада. - Паролите са архивирани/съхранени в мениджър на пароли.
- Разбрали сте политиката за носителя (ако е корпоративен — информационна сигурност).
10. Често задавани въпроси (FAQ)
В: Shred ли е достатъчен за SSD?
A: Не винаги. SSD контролерите и COW FS могат да запазят копия. За SSD е по-безопасно да разчиташ на криптиран резерв и/или физическо унищожение.
В: Мога ли да ползвам само zip?
A: Можеш, но zip паролата и методът за криптиране могат да са по-слаби. 7z или gpg са по-сигурни.
В: Как да съхранявам паролите сигурно?
A: Използвай мениджър на пароли (Bitwarden, KeePassXC, 1Password) и двуфакторна автентикация там.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut








