web-dev-qa-db-fra.com

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 à partir de H1. Je veux faire la même chose à partir de H2. Comment installer les clés ssh générées sur H1 sur H2?

39
Bruce

Modifié: Si vous possédez les deux machines, vous pouvez partager votre clé privée. Mais cette solution n'est pas sûre en cas de vol d'un ordinateur portable ou de machines dont vous n'êtes pas propriétaire.

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. Quand vous en H1 faites les commandes:

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

Attention! Ceci effacera et remplacera toute clé privée que vous aviez en 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; le premier concerne le login H1-S1 et le second le login H2-S1. Il y aura deux clés publiques autorisées en S1. Et vous pourrez révoquer l'un d'entre eux ou les deux (par exemple, si votre ordinateur portable est volé ou si le propriétaire de l'ordinateur décide de désactiver votre compte et de réutiliser tous vos fichiers).

25
osgx

Utilisez ssh-copy-id

SYNOPSIS

ssh-copy-id [-i [fichier_identité]] [utilisateur @] 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/registered_keys de cette machine.

25
Mu Qiao

Utilisez deux clés privées

Configurez H2 en utilisant le même processus (mais pas 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é de 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 H2,

type: ssh-copy-id [email protected]

(mais utilisez votre nom d'utilisateur actuel sur les noms d'hôte de S1 et S1, puis tapez votre mot de passe sur S1 lorsqu'il vous le demandera).

Cela installe la clé publique de votre poste de travail dans le fichier ~/.ssh/authorized_keys de 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 faire cela?

  • Je suppose que je pourrais simplement me connecter avec le même mot de passe des deux endroits. Cela ne peut pas être la bonne façon, 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 mon poste de travail. Cela ne peut pas être la bonne façon, car tout le monde dit que la clé privée n'est jamais censée quitter la machine cliente.

Les gens se sont fait dire qu'un compte sur un serveur avait 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 a un seul nom d'utilisateur et un nombre quelconque de clés publiques autorisées , toutes répertoriées dans le fichier ~/.ssh/authorized_keys. .

( plus de détails ).

9
David Cary

Est-ce que ssh-copy-id ferait le travail pour vous: http://linux.die.net/man/1/ssh-copy-id ?

0
Alex Wilson