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

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

Modifié: si vous possédez les deux machines, vous pouvez partager votre clé privée. Mais cette solution n'est pas sécurisée pour le cas d'un cahier volé ou pour des machines que vous ne possédez pas.

Vous pouvez copier vos clés privées de H1 à H2, si vous souhaitez utiliser la même clé privée pour pouvoir vous connecter de H2 à S1. Lorsque vous à 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 au H2.

La meilleure façon est de générer de nouvelles clés privées sur H2 ( ssh-keygen ) et d'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 est pour la connexion H1-S1 et la seconde pour la connexion H2-S1. Il y aura deux clés publiques autorisées à S1. Et vous pourrez révoquer l'un ou l'autre (par exemple, lorsque votre cahier est volé ou si le propriétaire de la machine décide de désactiver votre compte et de réutiliser tous vos fichiers).

Utiliser ssh-copy-id

SYNOPSIS

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

LA 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.

Utilisez deux clés privées

Configurez H2 en utilisant le même processus (mais pas la même clé privée) que lorsque vous avez configuré H1:

  • Il n'y a jamais de bonnes raisons de copier une clé privée d'une autre machine. Si vous n'avez pas déjà généré une nouvelle clé privée sur H2, faites-le maintenant. Également générer 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 H2,

Tapez: ssh-copy-id [email protected]

(Mais utilisez votre nom d'utilisateur réel sur le nom d'hôte S1 et S1, puis tapez votre mot de passe sur S1 lorsqu'il 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. A 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 à partir de mon ordinateur portable personnel ("H1")
  • Je souhaite également me connecter à mon serveur depuis mon poste de travail ("H2").

Quel est le bon moyen de le faire?

  • Je suppose que je pourrais simplement me connecter avec le même mot de passe des deux endroits. Cela ne peut pas être le bon moyen, car tout le monde dit que l'authentification par clé publique est beaucoup mieux que les mots de passe. (une)
  • Je suppose que je pourrais simplement copier la clé privée de mon ordinateur portable vers mon poste de travail. Cela ne peut pas être le bon moyen, car tout le monde dit que la clé privée n'est jamais censée quitter la machine client.

Les gens ont martelé dans leur tête qu'un compte sur un serveur possède 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 de mot de passe: un compte sur un serveur possède un seul nom d'utilisateur et n'importe quel nombre de clés publiques autorisées , toutes répertoriées dans le fichier ~/.ssh/authorized_keys .

( Plus de détails ).

Ssh-copy-id fera-t-il le travail pour vous: http://linux.die.net/man/1/ssh-copy-id ?