Come posso eseguire il backup delle chiavi ssh?


34

Sto pensando di fare una nuova installazione di Ubuntu 11.10 nel mio sistema. Prima di questo ho impostato l'autenticazione SSH basata su chiave in questa macchina. È possibile fare il backup di quelle chiavi ssh, in modo che io possa usarlo nella mia nuova installazione. Altrimenti devo configurare nuovamente l'autenticazione ssh basata su chiave? Se posso eseguire il backup, quali sono i file che devo copiare? Qualcuno può spiegarlo in dettaglio per favore. Grazie in anticipo.


1
Stai parlando di un server o una macchina client?
enzotib,

Sto parlando della macchina server.
karthick87,

Risposte:


39

Rispondendo solo a SSH ... sì, puoi conservare le tue chiavi.

Non riesco a pensare a nessun argomento su cui spiegarlo, però. È semplice: se il tuo nome utente è karthick, allora le chiavi si trovano in una directory nascosta qui:

/home/karthick/.ssh

o

~/.ssh

Il id_rsa.pubfile contiene la chiave pubblica utilizzata per l'autenticazione. Ma ci sono altri file da conservare, tutti davvero , come known_hosts ad esempio . Il più importante è id_rsa(notare la mancanza di .pub) in quanto questa è la chiave privata. Eseguire il backup di ogni utente. Ad esempio, se si imposta SSH per root, anche ottenere /root/.ssh. E così via per tutti gli account che hai per questo motivo.


1
ecco perché è sempre buona norma avere in una diversa partizione la directory / home; nel caso in cui si desideri eseguire una nuova installazione, non si vuole perdere nulla della propria configurazione.
Maniat1k,

5
Questa risposta è fuorviante. SSH utilizza una coppia di chiavi privata / pubblica. La chiave privata è dentro id_rsa. Questa è la chiave di importazione più importante per il backup.
Jan

1
Puoi recuperare la chiave pubblica (id_rsa.pub) dalla chiave privata (id_rsa), ma non viceversa. Il .pubfile contiene una riga che può essere inserita nei server ~/.ssh/authorized_keyse non viene utilizzata affatto durante la connessione al server.
Lekensteyn,

1
@ maniat1k In genere non sono d'accordo sul fatto che dovresti avere /homeuna partizione separata per il sistema operativo, perché una delle differenze tra le distribuzioni o le versioni dist è che i formati di file di configurazione possono cambiare, quindi le cose possono rompersi in modi inaspettati. Se vuoi mantenere la tua configurazione su tutti i sistemi operativi, penso che dovresti farlo esplicitamente per programmi specifici.
quodlibetor,

1
@Lekensteyn In realtà il .pubfile viene talvolta utilizzato durante la connessione a un server. Se la chiave segreta è crittografata, il .pubfile viene utilizzato per inviare la chiave pubblica al server. Se il server rifiuta la chiave pubblica non è necessario richiedere all'utente la password. Solo se il server accetta la chiave pubblica, la chiave segreta verrà decodificata. E se hai molte chiavi in ​​un ssh-agente vuoi istruire il client ssh su quale di loro usare, puoi farlo chiedendogli di usare un .pubfile specifico per l'autenticazione.
Kasperd,

33

Chiavi crittografiche di cui potresti voler eseguire il backup.

  • ~/.gnupg/*
  • ~/.pki/nssdb/*
  • ~/.gnome2/keyrings/*
  • ~/.ssh/*
  • /usr/local/apache2/conf/ssl.crt/server.crt
  • /usr/local/apache2/conf/ssl.key/server.key
  • /etc/ssh/*
  • /etc/ssl/private/*
  • /etc/cups/ssl/*

3
Ti sei perso proprio quello di cui aveva chiesto ( ~/.ssh) ma comunque una buona lista :)
Cesio

Hai anche perso/etc/ssh
Jan

Ottima lista! È più difficile cercare su Google un elenco del genere di quanto dovrebbe essere. Grazie per averlo fornito.
Christian,

8

Ogni utente ha un directoy ~ / .ssh, che in genere contiene i seguenti file:

1) id_dsa             private key of this user (different filename for rsa keys)
1) id_dsa.pub         public key of this user
2) authorized_keys    public key of other users (or same user on other machines)
   config             personal configuration
   known_hosts        host keys of other machines

Inoltre, in / etc / ssh /, troverai:

3) ssh_host_dsa_key
3) ssh_host_dsa_key.pub
3) ssh_host_rsa_key
3) ssh_host_rsa_key.pub

Quelle sono le chiavi dell'host, chiavi che identificano questo computer.

Sicuramente vuoi fare il backup di tutte le chiavi private e pubbliche. Chiamiamo la macchina in questione a casa e l'utente user @ home. La stessa persona ha un account utente @ remoto e utilizza l'accesso basato su chiave in entrambe le direzioni. Cosa succederebbe se perdessi uno dei file chiave:

  1. Perdi l'identità dell'utente @ home. ssh user@remoteda casa non funzionerà più con l'autenticazione basata su chiave.
  2. user @ remote perde il diritto di accedere a casa con la sua chiave. ssh user@homenon funzionerà più da remoto con autenticazione basata su chiave.
  3. Perdi l'identità dell'host. user @ remote visualizzerà un avviso che le chiavi host sono state modificate durante il tentativo ssh user@home. A seconda della configurazione, questo gli impedirà di accedere.

Per risposte a domande non poste ... :)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.