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 ?
Réponses
Trop de publicités?É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).
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 ).
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 :
-
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 H2ls -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
-
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 suivantels -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
-
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.
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.
- Réponses précédentes
- Plus de réponses