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


42

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?


2
Puisque ssh-copy-idest une solution plus infaillible (pas d’écrasement de clés existantes ou de copie accidentelle de la clé privée à la place de la clé publique ) et une solution moins connue, veuillez envisager d’accepter l’une de ces réponses en tant que réponse acceptée.
agtoever

Réponses:


28

Modifié: Si vous possédez les deux machines, vous pouvez partager votre clé privée. Mais cette solution n'est pas sans danger en cas de vol d'un ordinateur portable ou de 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. Quand vous en H1 faites les commandes:

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

Attention! Ceci supprimera et remplacera toute clé privée que vous aviez en H2.

Le meilleur moyen 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-idutil. 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).


8
Copier une clé privée n’est vraiment pas une bonne idée. Le fait d'avoir une clé unique à plusieurs endroits 1. rend celle-ci plus vulnérable, 2. augmente le risque de perdre le contrôle de tous les emplacements, 3. ne vous permet pas de désactiver l'accès à partir d'un seul emplacement. Du point de vue de la sécurité, vous devriez générer une nouvelle paire de clés à chaque emplacement - la solution de Mu Qiao.
Pabouk

28

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


1
@Je veux faire ssh de H2 à S1. Je souhaite transférer et installer ma clé privée et publique de H1 à H2. Est-ce que ça va faire ça?
Bruce

3
@Bruce Non, vous devez régénérer les clés sur h2 et utiliser cette commande pour copier vos clés. Une autre approche consiste à laisser les répertoires principal de partage h1 et h2.
Mu Qiao

9

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 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 username@S1.net

(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 ~/.ssh/authorized_keysfichier 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. (une)
  • 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 tels que 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 tableau.~/.ssh/authorized_keys fichier.

( plus de détails ).


Pardonne-moi de me répéter .
David Cary

0

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


@Je veux faire ssh de H2 à S1. Je souhaite transférer et installer ma clé privée et publique de H1 à H2. Est-ce que ça va faire ça?
Bruce le

2
Si vous êtes connecté à S1 ou à H1 (qui ont maintenant votre clé), utilisez ssh-copy-id vous permettra de transférer votre clé publique (non privée) vers le H2. En général, il est préférable de limiter le nombre de machines sur lesquelles votre clé privée est installée. Essayez de le garder sur quelques machines sécurisées uniquement pour éviter sa perte.

Comment copier ma clé privée sur H2?
Bruce

0

Pour déplacer des clés SSH d'un ordinateur à un autre. Copiez simplement le dossier entier de ~ / .ssh de H1 (ancienne machine) dans le dossier de contenu ~ / .ssh de la nouvelle machine H2.

Essayez maintenant:

ssh ubuntu@13.123.43.26 (votre adresse IP S1)

Très probablement, vous obtiendrez un avertissement concernant votre permission pour résoudre ce problème:

chmod 400 ~ / .ssh / id_rsa

Maintenant encore:

ssh ubuntu@13.123.43.26 (votre adresse IP S1)

Cela fonctionnera bien maintenant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.