Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
authkeysync — 🔐 Легковесная CLI-утилита, предназначенная для синхронизации публичных SSH-ключей из удалённых URL в локальные файлы authorized_keys | Kitploit
Инструменты/GitHubGitHub/eduardolat/authkeysync
Аутентификация и авторизацияБезопасность облачной инфраструктурыСкриптинг и автоматизацияАудит конфигурацииDevSecOpsАутентификация
GitHubeduardolat/authkeysync

authkeysync

🔐 Легковесная CLI-утилита, предназначенная для синхронизации публичных SSH-ключей из удалённых URL в локальные файлы authorized_keys

Репозиторий
288 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Логотип AuthKeySync

AuthKeySync

Автоматическая синхронизация открытых SSH-ключей с удалённых URL-адресов на ваши серверы

CI Status Go Report Card Release Version License

📖 Полная документация

Проблема

Управление SSH-доступом на нескольких серверах — это боль:

  • Участники команды приходят и уходят, и вам нужно обновлять authorized_keys на каждом сервере
  • Разработчики меняют свои SSH-ключи, и теперь у вас 20 серверов, которые нужно обновить
  • Вы используете Infrastructure as Code, но управление SSH-ключами по-прежнему выполняется вручную
  • Самодельные bash-скрипты для управления ключами часто плохо написаны, небезопасны или содержат тонкие ошибки, которые могут заблокировать вам доступ к серверам
  • Вы хотите использовать ключи GitHub/GitLab, но копировать их повсюду утомительно

Решение

AuthKeySync — это лёгкий CLI-инструмент, который загружает открытые SSH-ключи по URL-адресам (GitHub, GitLab, собственный API) и синхронизирует их на ваши серверы. Он безопасен, надёжен и предназначен для автоматизации.

root@kitploit:~
# /etc/authkeysync/config.yaml
users:
  - username: "deploy"
    sources:
      - url: "https://github.com/your-username.keys"
      - url: "https://github.com/another-username.keys"

Запустите authkeysync (вручную или через cron) — и ваш authorized_keys обновлён. Вот и всё.

Ключевые возможности

  • Один бинарный файл: Без зависимостей, просто скачайте и запускайте
  • Безопасно по умолчанию: Сохраняет существующие локальные ключи, создаёт резервные копии, использует атомарную запись
  • Отказоустойчивость: Если любой из источников завершится ошибкой, обновление прерывается, чтобы предотвратить блокировку
  • Гибкие источники: GitHub, GitLab или любой URL, возвращающий открытые SSH-ключи в виде обычного текста
  • Поддержка API: POST-запросы с пользовательскими заголовками для аутентифицированных API
  • Готовность к IaC: Не сохраняет состояние, идемпотентен, отлично подходит для Ansible/Terraform/cloud-init
  • Кроссплатформенность: Работает на Linux и macOS (AMD64 и ARM64)

Быстрый старт

1. Загрузка

Скачайте последний бинарный файл со страницы релизов:

root@kitploit:~
# Linux AMD64
curl -Lo authkeysync https://github.com/eduardolat/authkeysync/releases/latest/download/authkeysync-linux-amd64
chmod +x authkeysync
sudo mv authkeysync /usr/local/bin/

2. Настройка

Создайте файл конфигурации в /etc/authkeysync/config.yaml:

root@kitploit:~
policy:
  backup_enabled: true # Создавать резервные копии перед изменениями (по умолчанию: true)
  backup_retention_count: 10 # Количество хранимых резервных копий (по умолчанию: 10)
  preserve_local_keys: true # Сохранять ключи, отсутствующие в удалённых источниках (по умолчанию: true)

users:
  - username: "root"
    sources:
      - url: "https://github.com/your-username.keys"

3. Запуск

root@kitploit:~
# Сначала проверьте с помощью dry-run
sudo authkeysync --dry-run

# Применить изменения
sudo authkeysync

4. Автоматизация

Настройте задачу cron или таймер systemd для периодического запуска:

root@kitploit:~
# Каждые 5 минут (используйте --quiet, чтобы уменьшить шум в логах cron)
echo "*/5 * * * * root /usr/local/bin/authkeysync --quiet" | sudo tee /etc/cron.d/authkeysync

Параметры конфигурации

Политика (все параметры необязательны)

Пользователи (обязательно)

Параметр

Источники

Пример со всеми параметрами

root@kitploit:~
policy:
  backup_enabled: true
  backup_retention_count: 10
  preserve_local_keys: true

users:
  - username: "deploy"
    sources:
      # Простые ключи GitHub
      - url: "https://github.com/your-username.keys"

      # Частный API с аутентификацией
      - url: "https://keys.yourcompany.com/api/keys"
        method: "POST"
        headers:
          Authorization: "Bearer your-secret-token"
          Content-Type: "application/json"
        body: '{"environment": "production"}'
        timeout_seconds: 5

Параметры CLI

Коды выхода

КодЗначение
0Успех: все пользователи обработаны или пропущены
1Ошибка: как минимум один пользователь не синхронизирован

Как это работает

  1. Получение: Загружает SSH-ключи из настроенных URL-адресов
  2. Разбор: Проверяет и дедуплицирует ключи из всех источников
  3. Объединение: При необходимости сохраняет ключи, которые существуют только локально
  4. Запись: Атомарно обновляет authorized_keys с правильными правами доступа
  5. Резервное копирование: Создаёт резервные копии с временными метками перед любыми изменениями

Если любой из источников не удалось получить, AuthKeySync прерывает обновление для этого пользователя, чтобы предотвратить блокировку. Ваш существующий доступ остаётся нетронутым.

Поддержите проект

Если вы считаете AuthKeySync полезным, пожалуйста, поставьте ему звезду на GitHub и подпишитесь на меня в X (Twitter) для получения обновлений:

  • Поставить звезду на GitHub
  • Подписаться на @eduardoolat в X

Лицензия

Лицензия MIT. Подробности см. в LICENSE.

Скачать инструмент
ПараметрТипПо умолчаниюОписание
backup_enabledbooltrueСоздавать резервные копии перед изменением authorized_keys
backup_retention_countint10Количество хранимых файлов резервных копий для каждого пользователя
preserve_local_keysbooltrueСохранять существующие ключи, отсутствующие в удалённых источниках
Тип
Обязательный
Описание
usernamestringДаИмя системного пользователя (например, root, deploy)
sourceslistДаСписок источников ключей
ПараметрТипПо умолчаниюОписание
urlstring(обязательно)URL, возвращающий открытые SSH-ключи в виде обычного текста
methodstringGETHTTP-метод: GET или POST
headersmap{}Пользовательские HTTP-заголовки (например, для аутентификации)
bodystring""Тело запроса для POST-запросов
timeout_secondsint10Таймаут запроса в секундах
ПараметрОписание
--config <path>Путь к файлу конфигурации (по умолчанию: /etc/authkeysync/config.yaml)
--dry-runИмитировать синхронизацию без изменения каких-либо файлов
--debugВключить отладочное логирование (самый подробный режим)
--quietПоказывать только предупреждения и ошибки (рекомендуется для cron)
--silentПоказывать только ошибки (самый тихий режим)
--versionПоказать информацию о версии и выйти
--helpПоказать справку