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

Много от нас използват .ssh/config, за да улеснят достъпа до различни сървъри и виртуални машини. Ако работите на няколко компютъра или лаптопа, поддържането на един и същ SSH конфигурационен файл на всички устройства може да се окаже досадно.
В тази статия ще ви покажа как да имате един централен SSH конфигурационен файл, синхронизиран автоматично чрез Nextcloud, който работи на всяко Linux устройство и лаптоп, и се обновява на всеки 30 минути.
Стъпка 1: Подгответе конфигурационния файл
- В Nextcloud създайте папка, например:
Nextcloud/ssh/
- Вътре сложете своя
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 ще го използва без грешки.
Защо това решение е надеждно
- Файлът е върху Linux файловата система, така че SSH го приема.
- Скриптът обновява само при промяна, за да не прави излишни изтегляния.
- Работи на всеки лаптоп или компютър, на който имате Linux и Nextcloud клиент.
- Не използва симлинк към Windows файлове, което би предизвикало грешка
Bad owner or permissions. - Можете лесно да го комбинирате с cron или да го извиквате ръчно.
Заключение
С този подход имате един централен .ssh/config файл, който се синхронизира автоматично чрез Nextcloud и може да се използва на всички устройства. Добавянето на нов host се разпространява навсякъде, без да се налага ръчна промяна на всяка машина.

