Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
authkeysync — 🔐 Utilidad CLI ligera diseñada para sincronizar claves públicas SSH desde URLs remotas en archivos authorized_keys locales | Kitploit
Herramientas/GitHubGitHub/eduardolat/authkeysync
Autenticación y AutorizaciónSeguridad de Infraestructura en la NubeScripting y AutomatizaciónAuditoría de ConfiguraciónDevSecOpsAutenticación
GitHubeduardolat/authkeysync

authkeysync

🔐 Utilidad CLI ligera diseñada para sincronizar claves públicas SSH desde URLs remotas en archivos authorized_keys locales

Ver Repositorio
2815hace 10 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

AuthKeySync Logo

AuthKeySync

Sincroniza automáticamente las claves públicas SSH desde URLs remotas a tus servidores

CI Status Go Report Card Release Version License

📖 Documentación completa

El problema

Gestionar el acceso SSH en múltiples servidores es tedioso:

  • Los miembros del equipo se unen o se van, y necesitas actualizar authorized_keys en cada servidor
  • Los desarrolladores rotan sus claves SSH, y ahora tienes 20 servidores que actualizar
  • Estás usando Infraestructura como Código, pero la gestión de claves SSH sigue siendo manual
  • Los scripts bash caseros para la gestión de claves a menudo están mal escritos, son inseguros o tienen errores sutiles que pueden dejarte fuera de tus servidores
  • Quieres usar claves de GitHub/GitLab, pero copiarlas por todas partes es tedioso

La solución

AuthKeySync es un CLI ligero que obtiene claves públicas SSH desde URLs (GitHub, GitLab, tu propia API) y las sincroniza con tus servidores. Es seguro, fiable y diseñado para la automatización.

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

Ejecuta authkeysync (manualmente o mediante cron) y tu authorized_keys se actualiza. Eso es todo.

Características principales

  • Binario único: Sin dependencias, solo descárgalo y ejecútalo
  • Seguro por defecto: Preserva las claves locales existentes, crea copias de seguridad, usa escrituras atómicas
  • A prueba de fallos: Si falla cualquier fuente, la actualización se aborta para evitar bloqueos
  • Fuentes flexibles: GitHub, GitLab, o cualquier URL que devuelva claves SSH en texto plano
  • Soporte para API: Solicitudes POST con cabeceras personalizadas para APIs autenticadas
  • Listo para IaC: Sin estado, idempotente, perfecto para Ansible/Terraform/cloud-init
  • Multiplataforma: Funciona en Linux y macOS (AMD64 y ARM64)

Inicio rápido

1. Descargar

Obtén el último binario desde la página de lanzamientos:

# 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. Configurar

Crea un archivo de configuración en /etc/authkeysync/config.yaml:

policy:
  backup_enabled: true # Create backups before changes (default: true)
  backup_retention_count: 10 # Number of backups to keep (default: 10)
  preserve_local_keys: true # Keep keys not in remote sources (default: true)

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

3. Ejecutar

# Prueba primero con dry-run
sudo authkeysync --dry-run

# Aplica los cambios
sudo authkeysync

4. Automatizar

Configura una tarea cron o un timer systemd para que se ejecute periódicamente:

# Cada 5 minutos (usa --quiet para reducir el ruido de logs en cron)
echo "*/5 * * * * root /usr/local/bin/authkeysync --quiet" | sudo tee /etc/cron.d/authkeysync

Opciones de configuración

Política (todas opcionales)

OpciónTipoPor defectoDescripción
backup_enabledbooltrueCrear copias de seguridad antes de modificar authorized_keys
backup_retention_countint10Número de archivos de copia a conservar por usuario
preserve_local_keysbooltrueMantener claves existentes que no están en fuentes remotas

Usuarios (obligatorio)

OpciónTipoRequeridoDescripción
usernamestringSíNombre de usuario del sistema (p. ej., root, deploy)
sourceslistSíLista de fuentes de claves

Fuentes

OpciónTipoPor defectoDescripción
urlstring(obligatorio)URL que devuelve claves SSH en texto plano
methodstringGETMétodo HTTP: GET o POST
headersmap{}Cabeceras HTTP personalizadas (p. ej., para autenticación)
bodystring""Cuerpo de la solicitud para peticiones POST
timeout_secondsint10Tiempo de espera de la solicitud en segundos

Ejemplo con todas las opciones

policy:
  backup_enabled: true
  backup_retention_count: 10
  preserve_local_keys: true

users:
  - username: "deploy"
    sources:
      # Simple GitHub keys
      - url: "https://github.com/your-username.keys"

      # Private API with authentication
      - 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

Opciones de línea de comandos

OpciónDescripción
--config <path>Ruta al archivo de configuración (por defecto: /etc/authkeysync/config.yaml)
--dry-runSimular la sincronización sin modificar ningún archivo
--debugHabilitar registro de depuración (más verboso)
--quietMostrar solo advertencias y errores (recomendado para cron)
--silentMostrar solo errores (menos verboso)
--versionMostrar información de versión y salir
--helpMostrar mensaje de ayuda

Códigos de salida

CódigoSignificado
0Éxito: todos los usuarios procesados u omitidos
1Fallo: al menos un usuario no pudo sincronizarse

Cómo funciona

Descargar herramienta