Синхронизиране на SSH конфигурацията чрез Nextcloud и скрипт

Синхронизиране на ssh конфигурация с nextcloud и wsl2

Много от нас използват .ssh/config, за да улеснят достъпа до различни сървъри и виртуални машини. Ако работите на няколко компютъра или лаптопа, поддържането на един и същ SSH конфигурационен файл на всички устройства може да се окаже досадно.

В тази статия ще ви покажа как да имате един централен SSH конфигурационен файл, синхронизиран автоматично чрез Nextcloud, който работи на всяко Linux устройство и лаптоп, и се обновява на всеки 30 минути.


Стъпка 1: Подгответе конфигурационния файл

  1. В Nextcloud създайте папка, например:
Nextcloud/ssh/
  1. Вътре сложете своя config файл с всички host настройки:
Nextcloud/ssh/config

⚠️ Никога не качвайте private ключове в Nextcloud! Съхранявайте само конфигурационния файл.


Стъпка 2: Създайте скрипт за автоматично обновяване

В домашната директория на Linux (или на сървъра) създайте скрипт, например:

/home/fedia/update_ssh_config.sh

Съдържание на скрипта:

#!/bin/bash

REMOTE_URL="https://nextcloud.example.com/s/your-shared-config-link/download?files=config"
LOCAL_CFG="$HOME/.ssh/config"
TMP_CFG="$HOME/.ssh/config.tmp"

# Премахване на стар симлинк, ако има такъв
[ -L "$LOCAL_CFG" ] && rm "$LOCAL_CFG"

# Изтегляне на новия файл
wget -q --content-disposition "$REMOTE_URL" -O "$TMP_CFG"

# Ако вече съществува конфигурация и няма промяна → изтрий temp файла
if [ -f "$LOCAL_CFG" ]; then
    if diff "$TMP_CFG" "$LOCAL_CFG" >/dev/null 2>&1; then
        rm "$TMP_CFG"
        exit 0
    fi
fi

# Заместване на стария конфигурационен файл с новия
mv "$TMP_CFG" "$LOCAL_CFG"
chmod 600 "$LOCAL_CFG"

Важно: Сменете с вашия собствен Nextcloud линк или друг URL, където се съхранява конфигурационният файл.

Дайте му права за изпълнение:

chmod +x /home/fedia/update_ssh_config.sh

Стъпка 3: Настройка на автоматично изпълнение чрез cron

За да се обновява конфигурацията на всеки 30 минути, добавете следния ред в crontab:

crontab -e

и добавете:

*/30 * * * * /home/fedia/update_ssh_config.sh >/dev/null 2>&1

Това ще гарантира, че ~/.ssh/config винаги е актуален и безопасен за SSH.


Стъпка 4: Проверка

След няколко минути можете да проверите дали файлът е обновен:

ls -l ~/.ssh/config

Файлът трябва да има права -rw-------, а SSH ще го използва без грешки.


Защо това решение е надеждно

  1. Файлът е върху Linux файловата система, така че SSH го приема.
  2. Скриптът обновява само при промяна, за да не прави излишни изтегляния.
  3. Работи на всеки лаптоп или компютър, на който имате Linux и Nextcloud клиент.
  4. Не използва симлинк към Windows файлове, което би предизвикало грешка Bad owner or permissions.
  5. Можете лесно да го комбинирате с cron или да го извиквате ръчно.

Заключение

С този подход имате един централен .ssh/config файл, който се синхронизира автоматично чрез Nextcloud и може да се използва на всички устройства. Добавянето на нов host се разпространява навсякъде, без да се налага ръчна промяна на всяка машина.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

💝 Благодарим ви, че прочетохте тази статия! Ако сте намерили информацията за полезна, можете да подкрепите нашия труд със символична сума:
💝 Благодарим ви за подкрепата!

Последвайте ни във Facebook за още IT съвети и новини

Последвайте ни

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *


Колко е 7 - 5 ? (въведете числото)