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:
- Utilizza la vecchia chiave per aggiungere la nuova chiave ai tasti authorized_keys remoti
- 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
$