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

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

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

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

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

Категории

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

authkeysync

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

Репозиторий
281510 месяцев назадПроверено 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) и синхронизирует их на ваши серверы. Он безопасен, надёжен и предназначен для автоматизации.

# /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. Загрузка

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

# 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:

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. Запуск

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

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

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

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

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

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

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

ПараметрТипПо умолчаниюОписание
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Таймаут запроса в секундах

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

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

ПараметрОписание
--config <path>Путь к файлу конфигурации (по умолчанию: /etc/authkeysync/config.yaml)
--dry-runИмитировать синхронизацию без изменения каких-либо файлов
--debugВключить отладочное логирование (самый подробный режим)
--quietПоказывать только предупреждения и ошибки (рекомендуется для cron)
--silentПоказывать только ошибки (самый тихий режим)
--versionПоказать информацию о версии и выйти
--helpПоказать справку

Коды выхода

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

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

Скачать инструмент