Comment sauvegarder les clés ssh?

34

Je prévois de faire une nouvelle installation d'ubuntu 11.10 dans mon système. Avant cela, j'avais configuré l'authentification SSH basée sur les clés sur cette machine. Est-il possible de faire une sauvegarde de ces clés SSH, afin que je puisse l'utiliser dans ma nouvelle installation. Sinon, je dois à nouveau configurer l’authentification SSH basée sur une clé? Si je peux faire une sauvegarde, quels sont les fichiers que je dois copier? Quelqu'un peut-il expliquer en détail les pls. Merci d'avance.

karthick87
la source
1
Parlez-vous d'un serveur ou d'un ordinateur client?
enzotib
Je parle de la machine serveur.
karthick87

Réponses:

39

Répondre à SSH uniquement ... oui, vous pouvez conserver vos clés.

Je ne peux cependant pas penser à un sujet sur lequel exposer à ce sujet. C'est simple: si votre nom d'utilisateur est karthick, alors les clés sont situées dans un répertoire caché ici:

/home/karthick/.ssh

ou

~/.ssh

Le id_rsa.pubfichier contient la clé publique utilisée pour s'authentifier. Mais il y a d'autres fichiers à conserver - tous réellement , comme known_hosts par exemple . Les plus important est - id_rsa(noter le manque de .pub) car cela est votre clé privée. Sauvegardez chaque utilisateur. Par exemple, si vous configurez SSH pour root, obtenez- /root/.sshle également. Et ainsi de suite pour autant de comptes que vous en avez pour cette raison.

d -_- b
la source
1
C’est pourquoi il est toujours bon d’avoir dans une partition différente le répertoire / home; juste au cas où vous voudriez faire une nouvelle instalation sans perdre quoi que ce soit de votre propre configuration.
maniat1k
5
Cette réponse est trompeuse. SSH utilise une paire de clés privée / publique. La clé privée est dans id_rsa. C'est la clé la plus importante à sauvegarder.
Jan
1
Vous pouvez récupérer la clé publique (id_rsa.pub) à partir de la clé privée (id_rsa), mais pas l'inverse. Le .pubfichier contient une ligne qui peut être insérée dans les serveurs ~/.ssh/authorized_keyset n’est pas du tout utilisé lors de la connexion au serveur.
Lekensteyn
1
@ maniat1k Je ne suis généralement pas d'accord pour dire que vous devriez avoir /homeune partition séparée pour le système d'exploitation, car l'une des différences entre les distributions ou les versions dist est que les formats de fichier de configuration peuvent changer. Si vous souhaitez conserver votre configuration sur plusieurs systèmes d'exploitation, je pense que vous devriez le faire explicitement pour des programmes spécifiques.
quodlibetor
1
@Lekensteyn En fait, le .pubfichier est parfois utilisé lors de la connexion à un serveur. Si la clé secrète est cryptée, le .pubfichier est utilisé pour envoyer la clé publique au serveur. Si le serveur refuse la clé publique, il n'est pas nécessaire de demander à l'utilisateur un mot de passe. Ce n’est que si le serveur accepte la clé publique que la clé secrète sera déchiffrée. Et si vous avez plusieurs clés dans un ssh-agentet souhaitez indiquer au client ssh l’utilisation de ces clés , vous pouvez le faire en lui demandant d’utiliser un .pubfichier spécifique pour l’authentification.
Kasperd
33

Clés cryptographiques que vous voudrez peut-être sauvegarder.

  • ~/.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/*
Anonyme
la source
3
Vous avez manqué celui-là même qu'il a demandé ( ~/.ssh) mais une bonne liste quand même :)
Cesium
Vous avez manqué également/etc/ssh
Jan
Grande liste! Il est plus difficile de google pour une telle liste que cela devrait être. Merci de le fournir.
Christian
8

Chaque utilisateur a un fichier directoy ~ / .ssh, qui contient généralement les fichiers suivants:

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

De plus, dans / etc / ssh /, vous trouverez:

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

Ce sont les clés de l'hôte, les clés identifiant cet ordinateur.

Vous voulez certainement sauvegarder toutes les clés privées et publiques. Nous appelons la machine en question home et l'utilisateur user @ home. La même personne a un compte utilisateur @ remote et utilise une connexion par clé dans les deux sens. Que se passerait-il si vous perdiez l'un des fichiers de clé:

  1. Vous perdez l'identité de l'utilisateur @ home. ssh user@remotede la maison ne fonctionnera plus avec une clé basée sur l'authentification.
  2. utilisateur @ remote perd le droit de se connecter à la maison avec sa clé. ssh user@homene fonctionnera plus à distance avec une authentification basée sur une clé.
  3. Vous perdez l'identité de l'hôte. utilisateur @ remote verra un avertissement indiquant que les clés de l'hôte ont changé lors de la tentative ssh user@home. En fonction de la configuration, cela l'empêchera de se connecter.
Jan
la source
Pour répondre aux questions non posées ... :)