84 votes

Comment transférer mes clés SSH vers une autre machine ?

J'ai des comptes sur deux machines : H1 et H2. J'ai créé des clés ssh sur H1 et les ai installées sur S1. Je peux maintenant accéder à S1 par ssh depuis H1. Je veux faire la même chose à partir de H2. Comment puis-je installer les clés ssh générées sur H1 sur H2 ?

50voto

osgx Points 6257

Édité : Si vous possédez les deux machines, vous pouvez partager votre clé privée. Mais cette solution n'est pas sûre pour le cas d'un ordinateur portable volé ou pour des machines que vous ne possédez pas.

Vous pouvez copier vos clés privées de H1 à H2, si vous voulez utiliser la même clé privée pour pouvoir vous connecter de H2 à S1. Quand vous êtes sur H1, faites les commandes :

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

Attention ! Cela supprimera et remplacera toute clé privée que vous aviez chez H2.

Meilleur moyen est de générer de nouvelles clés privées sur H2 ( ssh-keygen ) et installer leur partie publique sur S1 avec ssh-copy-id util. Dans ce cas plus sûr, vous aurez deux jeux de clés, l'un pour la connexion H1-S1 et le second pour la connexion H2-S1. Il y aura deux clés publiques autorisées à S1. Et vous pourrez révoquer l'une d'entre elles ou les deux (par exemple, lorsque votre ordinateur portable est volé, ou que le propriétaire de la machine décide de désactiver votre compte et de réutiliser tous vos fichiers).

37voto

James Walford Points 113

Utilisez ssh-copy-id

SYNOPSIS

ssh-copy-id [-i [identity_file]] [user@]machine

DESCRIPTION

ssh-copy-id est un script qui utilise ssh pour se connecter à une machine distante et ajouter le fichier d'identité indiqué au fichier ~/.ssh/authorized_keys de cette machine.

18voto

David Cary Points 853

Utilisez deux clés privées

Configurer H2 en utilisant le même processus (mais no la même clé privée) que lors de la configuration de H1 :

  • Il n'y a jamais de bonne raison de copier une clé privée d'une autre machine. Si vous n'avez pas encore généré une nouvelle clé privée sur H2, faites-le maintenant. Générez également la clé publique correspondante. Dans un terminal sur H2,

type : ssh-keygen -t rsa

  • Copiez la clé publique de votre H2 sur le serveur. Dans un terminal sur le H2,

type : ssh-copy-id username@S1.net

(mais utilisez votre nom d'utilisateur réel sur S1 et le nom d'hôte de S1, et tapez plus tard votre mot de passe sur S1 lorsqu'il vous le demande).

Cela installe la clé publique de votre poste de travail dans le fichier ~/.ssh/authorized_keys pour cet utilisateur sur le serveur.

  • Il n'y a pas d'étape 3. À partir de maintenant, vous pouvez vous connecter au S1 à partir de votre H2, et également vous connecter au S1 à partir de votre H1.

détails

Je suppose que ce que vous demandez vraiment est

  • J'ai un serveur ("S1")
  • Je me connecte à mon serveur depuis mon ordinateur portable personnel ("H1")
  • Je souhaite également me connecter à mon serveur à partir de mon poste de travail ("H2").

Quelle est la bonne façon de procéder ?

  • Je suppose que je pourrais simplement me connecter avec le même mot de passe à partir des deux endroits. Cela ne peut pas être la bonne solution, car tout le monde dit que l'authentification par clé publique est bien meilleure que les mots de passe. (a)
  • Je suppose que je pourrais simplement copier la clé privée de mon ordinateur portable sur ma station de travail. Cela ne peut pas être la bonne méthode, car tout le monde dit que la clé privée n'est jamais censée quitter la machine cliente.

Les gens se sont mis dans la tête qu'un compte sur un serveur a un seul nom d'utilisateur et, bien sûr, un seul mot de passe autorisé.

Les systèmes à clé publique comme ssh sont meilleurs que le système à mot de passe : Un compte sur un serveur a un nom d'utilisateur unique et un nombre quelconque de clés publiques autorisées qui figurent tous dans la liste de l ~/.ssh/authorized_keys Datei.

( plus de détails ).

12voto

FedericoCapaldo Points 170

Toutes les questions ici abordent le problème de la copie d'identité d'un serveur à un autre en faisant appel à ssh-copy-id ce qui n'est pas le but de la question.

Le problème que les questions semblent poser est comment utiliser la même paire de clés privée-publique générée et utilisée sur un ordinateur personnel (H1) peut être utilisée sur une autre machine personnelle (H2) afin de ne pas avoir à configurer une nouvelle clé privée-publique et à l'ajouter manuellement à chaque serveur auquel nous nous sommes connectés .

Ce n'est pas conseillé pour des raisons de sécurité, comme cela a été largement mentionné par d'autres, mais il est possible de le faire en suivant les étapes suivantes :

  1. Copiez vos données privées (par exemple ~/.ssh/id_rsa ) et publics (par exemple ~/.ssh/id_rsa.pub ) de votre machine H1 à votre machine H2 à l'emplacement ~/.ssh (Ne le faites que par le biais d'une clé USB de confiance que vous formaterez par la suite, n'utilisez pas de courriels ou d'autres supports Internet). Lorsque vous exécuterez la commande suivante dans H2 ls -alt ~/.ssh la sortie contiendra au moins les éléments suivants :

    -rw-r--r-- 1 youUserName youUserName 1240 Nov 3 14:52 id_rsa -rw-r--r-- 1 youUserName youUserName 412 Nov 3 14:52 id_rsa.pub

  2. Sur H2, changez la permission de la clé privée pour qu'elle soit moins accessible (sinon l'étape suivante échouera) avec la commande chmod 600 ~/.ssh/id_rsa de sorte que la sortie de la commande suivante ls -alt ~/.ssh contiendra les éléments suivants (remarquez la différence avec l'autorisation ci-dessus) :

    -rw------- 1 youUserName youUserName 1240 Nov 3 14:52 id_rsa -rw-r--r-- 1 youUserName youUserName 412 Nov 3 14:52 id_rsa.pub

  3. Dernière étape. sur H2, utilisez maintenant la commande ssh-add ~/.ssh/id_rsa pour permettre à la paire de clés privée-publique d'être utilisée pour vous identifier de H2 à tout serveur auquel vous vous connecterez en utilisant la clé privée-publique que vous avez importée.

Maintenant, tout ssh o scp comme ssh yourUserName@ip-address devrait réussir comme si vous étiez connecté à H1.

Considérations de sécurité :

  • VEUILLEZ PRENDRE EN COMPTE LES SUGGESTIONS DES AUTRES POUR UNE MEILLEURE SÉCURITÉ, C'EST-À-DIRE GÉNÉRER UNE NOUVELLE PAIRE DE CLÉS PRIVÉE-PUBLIQUE.
  • Le seul cas où je pense que cela peut être utile est lorsque vous changez de machine pour de bon, de sorte que H2 devienne votre ordinateur principal et que H1 ne soit plus utilisé ;
  • Si vous utilisez toujours H1 et H2, il n'y a aucune raison valable d'utiliser la même paire de clés privée-publique de H2.

5voto

Shaurya Uppal Points 181

Pour le transfert des clés SSH d'un ordinateur à un autre. Il suffit de copier le dossier entier de ~/.ssh de H1 (ancienne machine) vers le dossier de contenu de ~/.ssh de la nouvelle machine H2.

Maintenant, essayez :

ssh ubuntu@13.123.43.26 (votre ip S1)

Il est fort probable que vous receviez un avertissement de permission pour corriger cette exécution :

chmod 400 ~/.ssh/id_rsa

Encore une fois :

ssh ubuntu@13.123.43.26 (votre ip S1)

Il fonctionnera bien maintenant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X