Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
authkeysync — 🔐 Utilità CLI leggera progettata per sincronizzare le chiavi pubbliche SSH da URL remoti nei file authorized_keys locali | Kitploit
Strumenti/GitHubGitHub/eduardolat/authkeysync
Autenticazione e AutorizzazioneSicurezza dell'Infrastruttura CloudScripting e AutomazioneAudit di ConfigurazioneDevSecOpsAutenticazione
GitHubeduardolat/authkeysync

authkeysync

🔐 Utilità CLI leggera progettata per sincronizzare le chiavi pubbliche SSH da URL remoti nei file authorized_keys locali

Vedi Repository
2859 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

AuthKeySync Logo

AuthKeySync

Sincronizza automaticamente le chiavi pubbliche SSH da URL remote ai tuoi server

CI Status Go Report Card Release Version License

📖 Documentazione Completa

Il Problema

Gestire l'accesso SSH su più server è doloroso:

  • I membri del team entrano o escono e devi aggiornare authorized_keys su ogni server
  • Gli sviluppatori ruotano le loro chiavi SSH e ora hai 20 server da aggiornare
  • Stai usando Infrastructure as Code, ma la gestione delle chiavi SSH è ancora manuale
  • Script bash fatti in casa per la gestione delle chiavi sono spesso scritti male, insicuri o hanno bug sottili che possono bloccarti l'accesso ai server
  • Vuoi usare le chiavi di GitHub/GitLab, ma copiarle ovunque è noioso

La Soluzione

AuthKeySync è un CLI leggero che recupera le chiavi pubbliche SSH da URL (GitHub, GitLab, la tua API) e le sincronizza sui tuoi server. È sicuro, affidabile e progettato per l'automazione.

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

Esegui authkeysync (manualmente o tramite cron) e il tuo authorized_keys viene aggiornato. Tutto qui.

Caratteristiche Principali

  • Singolo binario: Nessuna dipendenza, basta scaricarlo ed eseguirlo
  • Sicuro per impostazione predefinita: Preserva le chiavi locali esistenti, crea backup, usa scritture atomiche
  • Fail-safe: Se una sorgente fallisce, l'aggiornamento viene interrotto per prevenire blocchi
  • Sorgenti flessibili: GitHub, GitLab o qualsiasi URL che restituisca chiavi SSH in testo semplice
  • Supporto API: Richieste POST con intestazioni personalizzate per API autenticate
  • Pronto per IaC: Stateless, idempotente, perfetto per Ansible/Terraform/cloud-init
  • Multi-piattaforma: Funziona su Linux e macOS (AMD64 e ARM64)

Inizio Rapido

1. Scarica

Ottieni l'ultimo binario dalla pagina delle release:

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

Crea un file di configurazione in /etc/authkeysync/config.yaml:

root@kitploit:~
policy:
  backup_enabled: true # Crea backup prima delle modifiche (default: true)
  backup_retention_count: 10 # Numero di backup da conservare (default: 10)
  preserve_local_keys: true # Mantieni le chiavi non presenti nelle sorgenti remote (default: true)

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

3. Esegui

root@kitploit:~
# Prima testa con dry-run
sudo authkeysync --dry-run

# Applica le modifiche
sudo authkeysync

4. Automatizza

Imposta un cron job o un timer systemd per eseguirlo periodicamente:

root@kitploit:~
# Ogni 5 minuti (usa --quiet per ridurre il rumore nei log di cron)
echo "*/5 * * * * root /usr/local/bin/authkeysync --quiet" | sudo tee /etc/cron.d/authkeysync

Opzioni di Configurazione

Policy (tutte opzionali)

Utenti (richiesti)

Opzione

Sorgenti

Esempio con tutte le opzioni

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

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

      # API privata con autenticazione
      - 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

Opzioni CLI

Codici di Uscita

CodiceSignificato
0Successo: tutti gli utenti elaborati o saltati
1Fallimento: almeno un utente non sincronizzato

Come Funziona

  1. Recupera: Scarica le chiavi SSH dagli URL configurati
  2. Analizza: Valida e deduplica le chiavi da tutte le sorgenti
  3. Unisci: Opzionalmente mantiene le chiavi che esistono solo localmente
  4. Scrivi: Aggiorna atomicamente authorized_keys con i permessi corretti
  5. Backup: Crea backup con timestamp prima di qualsiasi modifica

Se una sorgente non riesce a recuperare i dati, AuthKeySync interrompe l'aggiornamento per quell'utente per prevenire blocchi. Il tuo accesso esistente rimane intatto.

Supporta il Progetto

Se trovi utile AuthKeySync, considera di dargli una stella su GitHub e seguirmi su X (Twitter) per aggiornamenti:

  • Stella su GitHub
  • Segui @eduardoolat su X

Licenza

Licenza MIT. Vedi LICENSE per i dettagli.

Scarica lo strumento
OpzioneTipoDefaultDescrizione
backup_enabledbooltrueCrea backup prima di modificare authorized_keys
backup_retention_countint10Numero di file di backup da conservare per utente
preserve_local_keysbooltrueMantieni le chiavi esistenti non presenti in sorgenti remote
Tipo
Richiesto
Descrizione
usernamestringSìNome utente del sistema (es. root, deploy)
sourceslistSìElenco delle sorgenti di chiavi
OpzioneTipoDefaultDescrizione
urlstring(richiesto)URL che restituisce chiavi SSH in testo semplice
methodstringGETMetodo HTTP: GET o POST
headersmap{}Intestazioni HTTP personalizzate (es. per autenticazione)
bodystring""Corpo della richiesta per richieste POST
timeout_secondsint10Timeout della richiesta in secondi
OpzioneDescrizione
--config <path>Percorso del file di configurazione (default: /etc/authkeysync/config.yaml)
--dry-runSimula la sincronizzazione senza modificare alcun file
--debugAbilita la registrazione debug (più verbosa)
--quietMostra solo avvisi ed errori (consigliato per cron)
--silentMostra solo errori (più silenzioso)
--versionMostra le informazioni sulla versione ed esci
--helpMostra il messaggio di aiuto