Processus pour déplacer les clés du serveur SSH vers un nouveau serveur

9

Je vais bientôt déplacer un serveur vers un nouveau matériel dans un nouveau centre de données, et bien sûr, cela signifie une nouvelle IP.

Quel est le processus correct (le cas échéant) pour déplacer les clés SSH du serveur d'origine vers le nouveau afin que les clients qui se connectent ne reçoivent aucun avertissement ou n'acceptent plus rien?

Est-ce même possible, étant donné que l'IP change?

Quels fichiers dois-je déplacer? Je suppose que tous les fichiers ssh_host_ *.

Passer de RHEL 5 à Ubuntu 10.04.

Daniel Huckstep
la source

Réponses:

8

Vous pouvez déplacer les clés de votre sereur actuel vers le nouveau serveur sans trop de tracas. Vous avez juste besoin de vous assurer qu'ils vont au même endroit et ont la même autorisation.

Dans l'idéal, cependant, vous devriez profiter de l'occasion pour créer de nouvelles clés et mettre à jour les clés client dans l'intérêt de la sécurité.

Mike
la source
2
J'ai oublié d'ajouter que vos utilisateurs peuvent recevoir un avertissement lorsqu'ils se connectent au nouvel hôte qu'ils ont déjà un hôte dans leur fichier d'hôtes connu qui correspond à la clé contre laquelle ils s'authentifient. Cela signifie qu'ils devront supprimer l'entrée de leur fichier d'hôtes connu. Vous ne pouvez pas contourner cela.
Mike
1
Donc, si les utilisateurs peuvent recevoir un avertissement de toute façon, est-il vraiment utile de déplacer les clés?
Daniel Huckstep
1
les utilisateurs recevront un avertissement. Ce sera un homme au milieu du message d'attaque. Cela semble effrayant, mais si vous supprimez know_hosts du client, ils recevront un message moins effrayant. Je ne connais pas une invite quelconque.
egorgry
5

1) Si vos fichiers de configuration sshd sont stockés sous / etc / ssh /, vous devrez les copier tous. Vous y trouverez la configuration sshd, ainsi que la paire de touches hôte.

Assurez-vous également de copier correctement les autorisations! Le sshd ignorera simplement les clés qui ne sont pas correctement protégées. (Bon aussi, car une clé privée non protégée est une très mauvaise idée.)

2) Si vous avez déjà ajouté des clés publiques d'hôtes distants qui sont fiables et ne nécessitent plus de mot de passe pour vous connecter, vous devrez également copier ces informations afin que la connexion automatique fonctionne à nouveau maintenant. Ces informations sont stockées normalement dans /home/-account-/.ssh/ (sous authorized_keys). Encore une fois, n'oubliez pas les autorisations ici.


En ce qui concerne le changement d'adresse IP, en supposant que les clients distants voient réellement un changement d'IP (vous n'êtes pas derrière un proxy inverse ou quoi que ce soit), alors non, ils demanderont à l'utilisateur d'accepter à nouveau le certificat. (puisque dans le fichier known_hosts du client distant, l'IP du serveur et le certificat du serveur ont été stockés ensemble) Pire encore, si vous attribuez cette adresse IP à un autre serveur ssh, ils pourraient même être avertis d'une attaque par l'homme du milieu.

Il est donc logique d'utiliser simplement la même adresse IP (externe) sur le nouveau serveur.

Arnout
la source
0

Vous n'avez pas mentionné votre système d'exploitation. Je peux vous dire avec certitude qu'un hôte RHEL a les clés du serveur stockées dans / etc / ssh. Copiez simplement ce répertoire dans son intégralité. Vous devrez ensuite rebondir sshd / redémarrer la boîte.

Je pense que tant que vous vous connectez via le même nom DNS, vous ne devriez pas recevoir d'avertissement. Même avec la nouvelle IP.


--Christopher Karel

Christopher Karel
la source
Ajout d'une note sur les systèmes d'exploitation
Daniel Huckstep
1
Alors oui, / etc / ssh est le répertoire que vous voulez. Je recommanderais juste les clés ssh_host *. Ne déplacez pas les fichiers de configuration. Et vous aurez envie de sauvegarder le côté destination des choses, juste pour être en sécurité.
Christopher Karel