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?
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).
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.
Configurez H2 en utilisant le même processus (mais pas la même clé privée) que lors de la configuration de H1:
type: ssh-keygen -t rsa
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.
Je suppose que ce que vous demandez vraiment est
Quelle est la bonne façon de faire cela?
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 ).
Est-ce que ssh-copy-id ferait le travail pour vous: http://linux.die.net/man/1/ssh-copy-id ?