¿Cómo hago una copia de seguridad de las claves ssh?

34

Estoy planeando hacer una nueva instalación de ubuntu 11.10 en mi sistema. Antes de eso, configuré la autenticación ssh basada en claves en esta máquina. ¿Es posible hacer una copia de seguridad de esas claves ssh para poder usarlas en mi nueva instalación? ¿De lo contrario, debo configurar la autenticación ssh basada en clave nuevamente? Si puedo hacer una copia de seguridad, ¿cuáles son los archivos que necesito copiar? Alguien puede explicarlo en detalle por favor. Gracias de antemano.

karthick87
fuente
1
¿Estás hablando de un servidor o una máquina cliente?
enzotib
Estoy hablando de la máquina del servidor.
karthick87

Respuestas:

39

Respondiendo solo a SSH ... sí, puedes guardar tus llaves.

Sin embargo, no puedo pensar en ningún tema sobre el cual exponer sobre eso. Es sencillo: si su nombre de usuario es karthick, entonces las claves se encuentran en un directorio oculto aquí:

/home/karthick/.ssh

o

~/.ssh

El id_rsa.pubarchivo contiene la clave pública utilizada para autenticar. Pero hay otros archivos para guardar, todos ellos, realmente , como known_hosts por ejemplo . Lo MÁS IMPORTANTE es id_rsa(tenga en cuenta la falta de .pub) ya que esta es su clave privada. Haga una copia de seguridad de cada usuario. Por ejemplo, si configura SSH para root, obtenga /root/.sshtambién. Y así por todas las cuentas que tenga por este motivo.

d -_- b
fuente
1
por eso siempre es una buena práctica tener en una partición diferente el directorio / home; en caso de que quiera hacer una nueva instalación, no querrá perder nada de su propia configuración.
maniat1k
55
Esta respuesta es engañosa. SSH utiliza un par de claves privadas / públicas. La clave privada está adentro id_rsa. Esta es la clave más importante para la copia de seguridad.
Jan
1
Puede recuperar la clave pública (id_rsa.pub) de la clave privada (id_rsa), pero no al revés. El .pubarchivo contiene una línea que se puede poner en los servidores ~/.ssh/authorized_keysy no se usa en absoluto cuando se conecta con el servidor.
Lekensteyn
1
@ maniat1k Generalmente no estoy de acuerdo con que debas tener /homeuna partición separada para el sistema operativo, porque una de las diferencias entre las distribuciones o las versiones dist es que los formatos de los archivos de configuración pueden cambiar, por lo que las cosas pueden romperse de manera inesperada. Si desea mantener su configuración en los sistemas operativos, creo que debe hacerlo explícitamente para programas específicos.
quodlibetor
1
@Lekensteyn En realidad, el .pubarchivo a veces se usa cuando se conecta a un servidor. Si la clave secreta está encriptada, el .pubarchivo se usa para enviar la clave pública al servidor. Si el servidor rechaza la clave pública, no es necesario pedirle al usuario la contraseña. Solo si el servidor acepta la clave pública se descifrará la clave secreta. Y si tiene muchas claves en un ssh-agenty desea instruir al cliente ssh sobre cuál de ellas usar, puede hacerlo pidiéndole que use un .pubarchivo específico para la autenticación.
kasperd
33

Claves criptográficas de las que puede que desee hacer una copia de seguridad.

  • ~/.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/*
Anónimo
fuente
3
Te perdiste el mismo sobre el que preguntó ( ~/.ssh) pero una buena lista de todos modos :)
Cesium
También te perdiste/etc/ssh
Jan
Gran lista! Es más difícil buscar en Google una lista de la que debería ser. Gracias por proporcionarlo.
Christian
8

Cada usuario tiene un director ~ / .ssh, que generalmente contiene los siguientes archivos:

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

Además, en / etc / ssh /, encontrará:

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

Esas son las claves de host, claves que identifican esta computadora.

Ciertamente desea hacer una copia de seguridad de todas las claves privadas y públicas. Llamamos a la máquina en cuestión home y al usuario user @ home. La misma persona tiene una cuenta de usuario @ remoto y usa inicio de sesión basado en clave en ambas direcciones. ¿Qué pasaría si pierdes alguno de los archivos clave?

  1. Pierdes la identidad del usuario @ home. ssh user@remotedesde casa ya no funcionará con autenticación basada en claves.
  2. user @ remote pierde el derecho de iniciar sesión en su hogar con su clave. ssh user@homeya no funcionará desde el control remoto con autenticación basada en clave.
  3. Pierdes la identidad del anfitrión. user @ remote verá una advertencia de que las claves de host han cambiado al intentarlo ssh user@home. Dependiendo de la configuración, esto evitará que inicie sesión.
ene
fuente
A las respuestas a las preguntas no formuladas ... :)