Ho pubblicato per errore la passphrase della chiave SSH, cosa devo fare?

39

Quindi ho scambiato i campi di input e ora la passphrase della chiave SSH è visibile al mondo e non riesco nemmeno a rimuoverla.

Ora, per quanto ho capito, questo non è un problema di sicurezza immediato, dal momento che la passphrase protegge solo dal caso in cui la mia chiave privata viene rivelata. Dal momento che ciò non è accaduto (la chiave esiste solo sull'hardware che possiedo), al massimo devo cambiare la passphrase nel caso succeda in futuro, non devo passare a una chiave SSH diversa ovunque io abbia usato esso.

È corretto? Tenendo presente che tutto questo è per progetti privati e un'ipotetica violazione potrebbe al massimo essere fastidiosa e imbarazzante.

    
posta Michael Borgwardt 04.04.2015 - 18:25
fonte

2 risposte

48

Tecnicamente , la modifica della passphrase è sufficiente se non ritieni anche che sia stata trapelata anche la tua chiave privata (protetta da password).

Realisticamente , potresti semplicemente voler sostituire la tua chiave SSH con una nuova. Sono così economici che potrebbero anche essere gratuiti, e ti rimuove dal preoccuparti se qualcuno ha, è o sarà in grado di ottenere una copia della chiave privata con la passphrase compromessa. Ricorda che se qualcuno prende una copia della tua chiave di cui hai eseguito il backup mesi prima di aver fatto trapelare (e modificato) la tua frase segreta, la passphrase continua ad accedere a quella chiave, che è la stessa che usi oggi con una nuova passphrase.

Quindi cambia la tua chiave. È una buona pratica e buone pratiche.

Modifica

@ David-Z ha suggerito che il tempo necessario per sostituire la chiave è un costo da prendere in considerazione. Ritengo che, dal momento che stiamo parlando di chiavi, anche questo sia trascurabile, dal momento che è possibile automatizzare il processo. Il seguente script mi ha richiesto circa 15 minuti per scrivere e testare:

#!/bin/bash

for i in $*
do
    cat newkey.pub | ssh -i oldkey username@$i "cat >> ~/.ssh/authorized_keys"
    ssh -i newkey username@$i "sed -n '/my_old_key/!p' < ~/.ssh/authorized_keys > ~/.ssh/authorized_keys_tmp && mv ~/.ssh/authorized_keys_tmp ~/.ssh/authorized_keys"
    if [ $? -eq 0 ]; then
       echo "Successful key replacement for $i"
    else
       echo "Key replacement failed for $i"
    fi
done

Questo script:

  1. Utilizza la vecchia chiave per aggiungere la nuova chiave ai tasti authorized_keys remoti
  2. Utilizza la nuova chiave per rimuovere la vecchia chiave dai tasti authorized_keys remoti

Il bello è che se qualcosa è andato storto spingendo fuori la nuova chiave, la rimozione della vecchia chiave fallirà dato che usa la nuova chiave, quindi è meno probabile che ti sparerai ai piedi.

Dovrai memorizzare nella cache i tuoi passphrase con ssh-agent in modo che non ti chieda questi usi di ssh; quindi eseguilo con i server che desideri aggiornare sulla riga di comando:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-GWE6uxZxn9IS/agent.2016; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2017; export SSH_AGENT_PID;
echo Agent pid 2017;
$ ssh-add oldkey
Enter passphrase for oldkey: 
Identity added: oldkey (oldkey)
$ ssh-add newkey
Enter passphrase for newkey: 
Identity added: newkey (newkey)
$ ./chssh.sh server1 server2 server3
Successful key replacement for server1
Successful key replacement for server2
Successful key replacement for server3
$ 
    
risposta data 04.04.2015 - 20:02
fonte
20

La modifica della passphrase di una chiave esistente può essere eseguita con:

ssh-keygen -p

... tuttavia non sei ancora finito. Devi anche prendere in considerazione le copie delle tue vecchie chiavi, queste devono essere rimosse o dovrebbero essere considerate come compromesse. Pensa ai backup, ma anche ai dati sui filesystem (i filesystem copy-on-write come ZFS e btrfs potrebbero conservare una copia da qualche parte sul back-end di storage).

La modifica della passphrase è una soluzione a breve termine se si ritiene che il file keyfile possa essere trapelato. Se non puoi essere sicuro che tutte le copie della tua vecchia chiave privata siano sparite, dovresti prendere in considerazione la possibilità di cambiare il tuo file di chiave privata.

Non dimenticare tutti i servizi in cui è presente anche la tua chiave pubblica. Perdere la chiave è un problema, la violazione di altri sistemi sarebbe un cattivo effetto collaterale.

    
risposta data 04.04.2015 - 19:59
fonte

Leggi altre domande sui tag