Skip to content
KitploitKITPLOIT
HerramientasBlog
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
28hace 8 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.

root@kitploit:~
# /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:

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

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

root@kitploit:~
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

root@kitploit:~
# 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:

root@kitploit:~
# 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)

Usuarios (obligatorio)

Opción

Fuentes

Ejemplo con todas las opciones

root@kitploit:~
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

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

  1. Descargar: Descarga las claves SSH desde las URLs configuradas
  2. Analizar: Valida y elimina duplicados de todas las fuentes
  3. Fusionar: Opcionalmente conserva las claves que solo existen localmente
  4. Escribir: Actualiza atómicamente authorized_keys con los permisos adecuados
  5. Copia de seguridad: Crea copias de seguridad con marca de tiempo antes de cualquier cambio

Si falla la descarga de alguna fuente, AuthKeySync aborta la actualización para ese usuario para evitar bloqueos. Tu acceso existente permanece intacto.

Apoya el proyecto

Si encuentras útil AuthKeySync, considera darle una estrella en GitHub y seguirme en X (Twitter) para recibir actualizaciones:

  • Dar estrella en GitHub
  • Sigue a @eduardoolat en X

Licencia

Licencia MIT. Consulta LICENSE para más detalles.

Descargar herramienta
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
Tipo
Requerido
Descripción
usernamestringSíNombre de usuario del sistema (p. ej., root, deploy)
sourceslistSíLista de fuentes de claves
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
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