Je réinstalle mon bureau Linux, comment faire pour que les connexions SSH fonctionnent?

15

Il y a longtemps, j'ai généré une paire de clés à l'aide ssh-keygenet j'ai utilisé ssh-copy-idpour permettre la connexion à de nombreuses machines virtuelles de développement sans avoir à saisir manuellement un mot de passe. J'ai également téléchargé ma clé publique sur GitHub, GitLab et similaire pour authentifier les référentiels git en utilisant git@au lieu de https://.

Comment puis-je réinstaller mon bureau Linux et garder toutes ces connexions actives? La sauvegarde et la restauration sont-elles ~/.ssh/suffisantes?

Chef Tony
la source
2
C'est l'une des nombreuses raisons pour lesquelles lorsque vous installez un nouvel environnement Linux, vous devriez avoir une partition pour /et une autre pour/home
olegario
4
@olegario je ne suis pas d'accord. J'ai utilisé Linux pendant la plus grande partie de ma vie et j'administre actuellement plus de 100 machines, mais j'ai toujours trouvé une /homepartition séparée à la fois compliquée et d'une utilisation limitée. Je comprends que certaines personnes le trouvent utile, et c'est très bien, mais je ne pense pas que ce soit une aide adéquate pour la situation des PO de toute façon.
marcelm
5
Il n'y a vraiment aucun avantage à une partition par rapport à la simple sauvegarde et restauration /homevia tarou tout autre moyen, à moins que vous ne prévoyiez de réutiliser les partitions existantes, ce qui est risqué de toute façon avec la plupart des installateurs de système d'exploitation qui les effaceront volontiers, à moins que ce ne soit sur un disque physique distinct que vous supprimer lors de l'installation.
R .. GitHub STOP HELPING ICE
1
Une fois que vous avez terminé la réinstallation, peu importe comment vous le faites exactement, vous voudrez peut-être reconsidérer avoir une seule paire de clés pour tout.
un CVn le

Réponses:

29

Vous devez au moins sauvegarder vos clés privées. Ils ne peuvent pas être régénérés sans avoir à remplacer votre clé publique partout. Ceux-ci auraient normalement un nom commençant par id_et sans extension.

Les clés publiques peuvent être régénérées avec cette commande: ssh-keygen -y -f path/to/private/key. Votre configuration utilisateur (un fichier appelé "config") pourrait également être utile si vous avez défini des valeurs par défaut.

Tous ces fichiers seront normalement dans ~ / .ssh, mais vérifiez d'abord!

l0b0
la source
28

Pour les connexions SSH sortantes , il suffit de sauvegarder votre paire de clés. Pour plus de commodité, vous pouvez simplement sauvegarder votre ~/.sshrépertoire et le restaurer sur la nouvelle installation.

Normalement, la sauvegarde et la restauration de ce répertoire sont suffisantes, mais il est possible de stocker les clés ailleurs en utilisant des paramètres personnalisés dans ~/.ssh/configou /etc/ssh/ssh_config, ou en utilisant un agent SSH et ssh-adden récupérant les clés à utiliser sur les connexions sortantes à partir d'un emplacement arbitraire .

Si vous avez des connexions SSH entrantes , vous pouvez également envisager de sauvegarder les clés d'hôte SSH à l'adresse /etc/ssh/ssh_host_*. Si vous ne les sauvegardez pas, de nouvelles clés d'hôte seront automatiquement générées par sshdlors de son premier démarrage sur la nouvelle installation, et toutes les connexions SSH entrantes afficheront la «non-concordance des clés d'hôte SSH, quelqu'un fait peut-être quelque chose de mal! message d'erreur et rejette généralement la connexion, sauf si quelqu'un supprime l'ancienne clé d'hôte sur le client SSH et accepte explicitement la nouvelle.

Il semble que vous n'ayez peut-être pas de connexions SSH entrantes sur votre système de bureau Linux, donc je ne mentionne cela que pour des raisons d'exhaustivité. Mais sur les systèmes serveurs, ou si vous avez une configuration d'automatisation SSH importante, la reconnaissance d'une clé d'hôte modifiée peut être un problème majeur.

telcoM
la source
1
+1 Cela devrait être la réponse acceptée. Pour vous connecter à partir d' autres machines, vous devez conserver la clé d'hôte, généralement stockée dans /etc/ssh, les noms de fichiers sont ssh_host_*(plusieurs fichiers pour différents algorithmes).
rexkogitans
2
Notez que si vous êtes SSH dans , vous pouvez tourner les hôtes clés de toute façon; mais cela dépend de votre situation de gestion des clés (par exemple, les clés ont été générées pour la dernière fois il y a des années, et vous n'en avez pas /etc/ssh/ssh_host_ed25519_keyencore, ou vous avez une clé RSA 1024, ou même une clé DSS).
Piskvor a quitté le bâtiment le