diff --git a/README.md b/README.md index 5c6649e..2461c4b 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,15 @@ Мой репозиторий конфигурационных файлов. + +## Установка ssh-ключей через bitwarden-cli + +```bash +bw config server https://pass.ada-dev.ru +bw login +bw get item <название ключа> | jq -r '.sshKey.privateKey' > ~/.ssh/id_ed25519 +``` + ## Установка ```bash @@ -20,6 +29,7 @@ stow -t ~ */ После синхронизации dotfiles резервные копии начнут создаваться автоматически по расписанию. Возможные команды: **Статус и информация:** + ```bash resticprofile status # список всех профилей и их статуса resticprofile profiles # показать все доступные профили @@ -27,6 +37,7 @@ resticprofile show [profile] # подробно о профиле ``` **Создание резервной копии вручную:** + ```bash resticprofile backup # backup для всей группы 'all' resticprofile -n dotfiles backup # backup определённого профиля (напр. dotfiles) @@ -34,24 +45,28 @@ resticprofile -n projects backup # backup проектов ``` **Просмотр снимков:** + ```bash resticprofile snapshots # список всех снимков resticprofile -n dotfiles snapshots # снимки конкретного профиля ``` **Очистка старых снимков:** + ```bash resticprofile forget # удалить старые снимки согласно политике resticprofile -n dotfiles forget # очистить конкретный профиль ``` **Восстановление данных:** + ```bash resticprofile -n dotfiles restore latest /tmp/restore # восстановить в /tmp/restore resticprofile -n dotfiles restore /path # конкретный снимок ``` **Проверка целостности:** + ```bash resticprofile -n dotfiles check # проверить репозиторий ``` @@ -59,19 +74,21 @@ resticprofile -n dotfiles check # проверить репозиторий ### На новой машине 1. **Клонизация dotfiles:** + ```bash git clone ~/.dotfiles cd ~/.dotfiles mkdir -p ~/.ssh/sockets ``` - 2. **Развёртывание конфигов (stow):** + ```bash stow -t ~ */ ``` - Это разместит конфиги из `restic/.config/resticprofile/` в `~/.config/resticprofile/` + Это разместит конфиги из `restic/.config/resticprofile/` в `~/.config/resticprofile/` 3. **Установка rclone и resticprofile** (если нет): + ```bash # rclone (для работы с облаком) curl https://rclone.org/install.sh | sudo bash @@ -79,24 +96,27 @@ resticprofile -n dotfiles check # проверить репозиторий # resticprofile (управление бэкапами) # или через пакетный менеджер вашей системы ``` + t 4. **Настройка rclone** (нужно один раз): - ```bash + +```bash rclone config # Добавить remote 'yadisk' для Яндекс.Диска # Использовать OAuth или AppPassword для авторизации - ``` +``` 5. **Установка пароля для репозитория restic:** Убедитесь, что файл `~/.config/resticprofile/pass.txt` содержит пароль для шифрования бэкапов (он же, что на основной машине). - 6. **Проверка подключения к существующему репозиторию:** + ```bash resticprofile -n dotfiles snapshots # проверить доступ к репозиторию ``` - Если вывод показывает список снимков — подключение работает. + Если вывод показывает список снимков — подключение работает. 7. **Восстановление данных из последних бэкапов:** + ```bash # Восстановить kritical данные (dotfiles, конфиги, SSH) resticprofile -n dotfiles restore latest / @@ -104,8 +124,8 @@ t # Или выборочно в временную папку для проверки resticprofile -n dotfiles restore latest /tmp/restore ``` - 8. **Включение в systemd** (опционально, для автозапуска): + ```bash resticprofile install resticprofile schedule @@ -113,15 +133,16 @@ t ### Структура профилей -| Профиль | Источник | Частота | Назначение | -|---------|----------|---------|-----------| -| **dotfiles** | ~/.dotfiles, ~/.config, ~/.ssh | Каждые 6 часов | Критичные конфигурационные файлы | -| **projects** | ~/Documents/Projects | Каждый час | Код и проекты (меняются часто) | -| **vaults** | ~/Documents/Vaults | Каждый час | Важные данные и пароли | -| **files** | ~/Documents/Files | Ежедневно в 02:15 | Документы | -| **pictures** | ~/Pictures, ~/Videos | По групповому расписанию | Фотографии и видео | +| Профиль | Источник | Частота | Назначение | +| ------------------ | ------------------------------ | ---------------------------------------------- | -------------------------------------------------------------- | +| **dotfiles** | ~/.dotfiles, ~/.config, ~/.ssh | Каждые 6 часов | Критичные конфигурационные файлы | +| **projects** | ~/Documents/Projects | Каждый час | Код и проекты (меняются часто) | +| **vaults** | ~/Documents/Vaults | Каждый час | Важные данные и пароли | +| **files** | ~/Documents/Files | Ежедневно в 02:15 | Документы | +| **pictures** | ~/Pictures, ~/Videos | По групповому расписанию | Фотографии и видео | **Политика хранения:** + - Последние 10 снимков (общая) - Ежедневные (7 дней) - Еженедельные (4 недели) diff --git a/git/.gitconfig b/git/.gitconfig index fbf7484..745ef7c 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -205,7 +205,7 @@ [credential] # Кэшировать пароли на 1 час - helper = "!f() { /home/ada/.vscode-server/bin/e7fb5e96c0730b9deb70b33781f98e2f35975036/node /tmp/vscode-remote-containers-c2ca9419-d1b5-464d-a579-9a0e513fd732.js git-credential-helper $*; }; f" + helper = "!f() { /home/ada/.vscode-server/bin/560a9dba96f961efea7b1612916f89e5d5d4d679/node /tmp/vscode-remote-containers-b98ef833-2311-4179-921f-998f5b0fa50b.js git-credential-helper $*; }; f" # ═══ URL shortcuts ══════════════════════════════════════════ diff --git a/ssh/.ssh/config.d/00-globals.conf b/ssh/.ssh/config.d/00-globals.conf index 6b0d154..1c2419b 100644 --- a/ssh/.ssh/config.d/00-globals.conf +++ b/ssh/.ssh/config.d/00-globals.conf @@ -12,7 +12,7 @@ Host * # Использовать только явно заданные ключи IdentitiesOnly yes - IdentityAgent ~/.bitwarden-ssh-agent.sock + # IdentityAgent ~/.bitwarden-ssh-agent.sock # Таймауты подключения ConnectTimeout 10 diff --git a/ssh/.ssh/config.d/10-local.conf b/ssh/.ssh/config.d/10-local.conf index dd054b3..3c10a68 100644 --- a/ssh/.ssh/config.d/10-local.conf +++ b/ssh/.ssh/config.d/10-local.conf @@ -1,9 +1,4 @@ -Host ada-pc - HostName 192.168.1.100 - User ada - IdentityFile ~/.ssh/keys/ada-pc.pub - Host ada-x1 HostName 192.168.1.101 User ada - IdentityFile ~/.ssh/keys/adax1.pub + IdentityFile ~/.ssh/keys/id_ed25519 diff --git a/ssh/.ssh/config.d/20-selfhost.conf b/ssh/.ssh/config.d/20-selfhost.conf index 7f8ce93..1fd86bc 100644 --- a/ssh/.ssh/config.d/20-selfhost.conf +++ b/ssh/.ssh/config.d/20-selfhost.conf @@ -3,27 +3,28 @@ Host vps vps-ada HostName 157.22.231.198 Port 3422 User ada - IdentityFile /home/ada/.ssh/keys/homelab_ssh.pub + IdentityFile /home/ada/.ssh/id_ed25519_hl + ServerAliveInterval 30 + ServerAliveCountMax 3 -# ZimaOS Host docker-host HostName 100.70.131.10 User ada - IdentityFile ~/.ssh/keys/homelab_ssh.pub + IdentityFile ~/.ssh/keys/id_ed25519_hl SetEnv TERM=xterm-256color ProxyJump vps Host pve HostName 100.68.130.76 User root - IdentityFile ~/.ssh/keys/homelab_ssh.pub + IdentityFile ~/.ssh/id_ed25519_hl SetEnv TERM=xterm-256color # ProxyJump vps Host openclaw Hostname 192.168.1.20 User openclaw - IdentityFile ~/.ssh/keys/adax1.pub + IdentityFile ~/.ssh/id_ed25519 SetEnv TERM=xterm-256color ProxyJump pve @@ -31,5 +32,7 @@ Host git.ada-dev.ru HostName 100.70.131.10 Port 2222 User git - IdentityFile /home/ada/.ssh/keys/adax1.pub + IdentityFile /home/ada/.ssh/id_ed25519_hl + ServerAliveInterval 30 + ServerAliveCountMax 3 ProxyJump vps diff --git a/ssh/.ssh/config.d/40-proxy.conf b/ssh/.ssh/config.d/40-proxy.conf index 2b41262..1590d70 100644 --- a/ssh/.ssh/config.d/40-proxy.conf +++ b/ssh/.ssh/config.d/40-proxy.conf @@ -5,13 +5,4 @@ Host ru-vps Port 3422 ServerAliveInterval 30 ServerAliveCountMax 3 - IdentityFile /home/ada/.ssh/id_ed25519_homelab - -Host fl-vps - HostName 89.167.32.245 - Port 4322 - User ada - IdentityFile /home/ada/.ssh/id_ed25519_flvpn - ProxyJump ru-vps - ServerAliveInterval 30 - ServerAliveCountMax 3 + IdentityFile /home/ada/.ssh/id_ed25519_hl diff --git a/ssh/.ssh/keys/ada-pc.pub b/ssh/.ssh/keys/ada-pc.pub deleted file mode 100644 index 822f6db..0000000 --- a/ssh/.ssh/keys/ada-pc.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH50axSCXZiDkpnbggASg1P+EfAKhdExahLOXKe0VxqS ada-pc diff --git a/ssh/.ssh/keys/adax1.pub b/ssh/.ssh/keys/adax1.pub deleted file mode 100644 index 2b06c9c..0000000 --- a/ssh/.ssh/keys/adax1.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIWNsUQmppB6cQccXX1ZaBbFIcmM6RmghsTVbG9TgoZB adax1 diff --git a/ssh/.ssh/keys/autossh-proxy.pub b/ssh/.ssh/keys/autossh-proxy.pub deleted file mode 100644 index ce784a7..0000000 --- a/ssh/.ssh/keys/autossh-proxy.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMwZ10/S25oSZsJNdWWMwfelPDM4VcZMGHQ9PDxW1A1G autossh-proxy diff --git a/ssh/.ssh/keys/fl-vpn.pub b/ssh/.ssh/keys/fl-vpn.pub deleted file mode 100644 index 6d34b76..0000000 --- a/ssh/.ssh/keys/fl-vpn.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIApx18Rmr32XqE+XnHl+sJkZGFWvyQ+uMGfOic2TdYju fl-vpn diff --git a/ssh/.ssh/keys/homelab_ssh.pub b/ssh/.ssh/keys/homelab_ssh.pub deleted file mode 100644 index fa6c6cc..0000000 --- a/ssh/.ssh/keys/homelab_ssh.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICmj/O+dwIiuFW0VVYnbX/PUComP1h5VrCBoMTIP3j0Z homelab_ssh diff --git a/ssh/.ssh/keys/key_vps.pub b/ssh/.ssh/keys/key_vps.pub deleted file mode 100644 index 688f275..0000000 --- a/ssh/.ssh/keys/key_vps.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJoW3axMmMF1+sffBSKK/K388I1TdLqXcJbXlJd6/BI1 key_vps diff --git a/zsh/.config/zsh/config/aliases.zsh b/zsh/.config/zsh/config/aliases.zsh index d23c284..e209261 100644 --- a/zsh/.config/zsh/config/aliases.zsh +++ b/zsh/.config/zsh/config/aliases.zsh @@ -59,7 +59,7 @@ alias localip="ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v 1 # Proxy # Включение прокси (HTTP, HTTPS и SOCKS5h для DNS через прокси) -alias proxy-on='export http_proxy="http://127.0.0.1:2080" https_proxy="http://127.0.0.1:2080" ALL_PROXY="socks5://127.0.0.1:2080" all_proxy="socks5://127.0.0.1:2080" && echo "󰖟 Proxy enabled (127.0.0.1:2080)"' +alias proxy-on='export http_proxy="http://127.0.0.1:7897" https_proxy="http://127.0.0.1:7897" ALL_PROXY="socks5://127.0.0.1:7897" all_proxy="socks5://127.0.0.1:7897" && echo "󰖟 Proxy enabled (127.0.0.1:7897)"' # Полное отключение всех переменных прокси alias proxy-off='unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY && echo "󰖪 Proxy disabled"'