web-dev-qa-db-fra.com

Plusieurs clés publiques pour un utilisateur

Cette question est similaire à authentification par clé publique SSH - une clé publique peut-elle être utilisée pour plusieurs utilisateurs? mais c'est l'inverse.

J'expérimente sur l'utilisation de ssh pour que tout serveur ssh fonctionne pour vos réponses.

Puis-je avoir plusieurs clés publiques liées au même utilisateur? Quels en sont les avantages? En outre, des répertoires personnels différents peuvent-ils être définis pour différentes clés utilisées (qui sont toutes liées au même utilisateur)?

Veuillez me faire savoir si je ne suis pas clair.

Merci.

58
Russell

Vous pouvez avoir autant de clés que vous le souhaitez. Il est recommandé d'utiliser de toute façon des jeux de clés privés/publics distincts pour différents domaines, comme un jeu pour votre usage personnel, un pour votre travail, etc.

Tout d'abord, générez deux paires de clés distinctes, une pour la maison et une pour le travail:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

Ensuite, ajoutez une entrée à votre ~/.ssh/config fichier pour choisir la clé à utiliser en fonction du serveur auquel vous vous connectez:

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

Ensuite, ajoutez le contenu de votre id_rsa.work.pub en ~/.ssh/authorized_keys sur la machine de travail, et faites de même pour la touche d'accueil de votre machine domestique.

Ensuite, lorsque vous vous connectez au serveur domestique, vous utilisez l'une des clés et le serveur professionnel, vous en utilisez une autre.

Notez que vous souhaitez probablement ajouter les deux clés à votre ssh-agent pour que vous n'ayez pas à taper votre mot de passe tout le temps.

85
Phil Hollenback

Il est très logique que plusieurs clés d'utilisateurs soient attribuées à un seul utilisateur. Les raisons courantes sont:

  • sauvegarde
  • git (par exemple Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • accès commun à une application

En ce qui concerne différents homedirs, vous pouvez les modifier par clé en ajoutant environment="HOME=/home/user1" pour la clé de l'utilisateur1 dans le fichier authorized_keys. Voir man authorized_keys.

Essayez-le, YMMV.

5
MikeyB