Question Comment créer une clé SSH pour un autre utilisateur?


J'essaie de créer une clé SSH pour un autre utilisateur. Je suis connecté en tant que root. Puis-je simplement éditer les fichiers générés par ssh-keygen et changer de racine pour l'utilisateur que je veux?


76
2017-10-22 19:24


origine


Si vous générez la clé pour l'utilisateur, vous devez également disposer d'une méthode sécurisée pour obtenir la clé privée et sa phrase secrète pour l'utilisateur. Il est nettement préférable que l’utilisateur génère la clé, puis vous envoie simplement la clé publique par courrier électronique. - Iain
Mais n'est-ce pas difficile si vous n'autorisez pas les connexions par mot de passe? Si je n'utilise que la clé et que je configure un nouvel utilisateur, ils ne peuvent pas se connecter pour configurer leur clé. - LVLAaron


Réponses:


Vous pouvez le faire avec ssh-keygenCependant, rappelez-vous que la clé privée est censée être privée pour l'utilisateur. Vous devez donc faire très attention à le garder en sécurité, de manière aussi sûre que le mot de passe de l'utilisateur. Ou même plus sûr, car l'utilisateur ne sera probablement pas obligé de le changer lors de sa première connexion.

ssh-keygen -f anything crée deux fichiers dans le répertoire en cours. anything.pub est la clé publique, que vous pouvez ajouter à l'utilisateur ~/.ssh/authorized_keys sur n'importe quel serveur de destination.

L'autre fichier, juste appelé anything est la clé privée et doit donc être stocké en toute sécurité pour l'utilisateur. L'emplacement par défaut serait ~username/.ssh/id_rsa (nommé ici id_rsa, qui est la valeur par défaut pour les clés rsa). Rappelez-vous que le .ssh Le répertoire ne peut être lisible ou écrit en écriture que par l'utilisateur, et le répertoire personnel de l'utilisateur ne peut être écrit en écriture par personne d'autre que l'utilisateur. De même, les autorisations sur la clé privée doivent être limitées: lecture / écriture uniquement pour l'utilisateur, ainsi que le répertoire .ssh et le fichier de clé privée doivent appartenir à l'utilisateur.

Techniquement, vous pouvez stocker la clé n'importe où. Avec ssh -i path/to/privatekey vous pouvez spécifier cet emplacement lors de la connexion. Encore une fois, la propriété et les autorisations appropriées sont critiques et ssh ne fonctionnera pas si vous ne les avez pas correctement.


74
2017-10-22 19:35



+1 pour exprimer qu'il s'agit d'une clé privée (!) - mailq
Vous supposez que l'utilisateur est une personne réelle. Si la connexion est un utilisateur non interactif utilisé pour exécuter des tâches utilitaires (par exemple, exécuter des scripts maine sur des serveurs distants), vous générerez probablement la clé pour cet utilisateur manuellement. Bien sûr, cela a ses propres implications en matière de sécurité, mais c'est une autre histoire. - Rilindo
@Rilindo ssh -i À une clé privée pour un processus non privilégié, je gère plus que quelques processus de sauvegarde rsync automatisés. :) - Shadur
Je n'aime pas ce genre de réponse qui dit "tu ne devrais pas faire ça" mais ne réponds pas à la question. Bien que cela puisse être correct et utile pour le contexte de la question initiale, d’autres personnes peuvent poser la même question dans une situation différente. "Les clés ssh ne doivent jamais être générées pour un autre utilisateur": C’est vrai dans le cas simple. Mais considérons plusieurs identités de la même personne physique, par exemple. Il peut y avoir plusieurs comptes sur plusieurs systèmes, tous ne vous permettant pas de générer des clés ou permettant de protéger les clés privées de manière appropriée. - Gustave
usersou user's - User


Il y a aucune information utilisateur dans les clés SSH.

Le dernier champ d'une clé publique est un commentaire (et peut être modifié en exécutant la commande suivante ssh-keygen -C newcomment).

Nul besoin de faire quelque chose de spécial pour créer une clé pour un autre utilisateur, il suffit de la placer au bon endroit et de définir les autorisations.


108
2017-10-22 19:55



C'est la bonne réponse. - sebnukem
Je viens de tester et de confirmer, non seulement il s’agit d’un commentaire, mais il peut être supprimé et les touches fonctionnent toujours. J'ai toujours pensé que c'était important! Merci d'avoir donné la bonne réponse. Comme les commentaires ci-dessus, j'ai une raison de créer des clés pour d'autres utilisateurs, mais je ne dirai pas pourquoi, donc il n'y a pas d'argument. - FreeSoftwareServers


Devenez l'utilisateur en utilisant su et lancez la clé en tant qu'utilisateur:

[root@kvm0001 ~]# su - joeuser
[joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/joeuser/.ssh/id_dsa):

16
2017-10-22 19:35



Pourquoi spécifier le DSA? - Ram
Oups, force d'habitude. Laissez-moi mettre à jour. - Rilindo
vous devriez utiliser rsa (ou éventuellement une des variantes de la courbe elliptique). dsa est limité aux clés non sécurisées. rsa1 est un format hérité pour ssh1 que personne ne devrait plus utiliser. - Peter Green
ma joeuser est un utilisateur de service, donc je ne peux pas me connecter comme eux. Comment permettre à un utilisateur de service (qui exécute uniquement des processus) d'avoir une clé ssh? - Jonathan
@JonathanLeaders Vous spécifierez le shell pour l'utilisateur lorsqu'il deviendra cet utilisateur. Quelque chose comme ceci: `` [[root @ ip-10-254-41-211 ~] # grep ftp / etc / passwd ftp: x: 14: 50: Utilisateur FTP: / var / ftp: / sbin / nologin [root @ ip-10-254-41-211 ~] # su - ftp su: avertissement: impossible de changer de répertoire en / var / ftp: aucun fichier ou répertoire de ce type Ce compte n'est actuellement pas disponible. [root @ ip-10-254-41-211 ~] # su -s / bin / bash ftp bash-4.2 $ whoami ftp bash-4.2 $ `` ` - Rilindo


Comme vu ici, vous pouvez utiliser chmod pour modifier les autorisations de lecture du dossier de l’utilisateur auquel vous souhaitez ajouter la clé SSH.

vim /home/username/.ssh/authorized_keys

Ensuite, il suffit de coller la clé dans une nouvelle ligne au bas de ce fichier


5
2018-01-09 23:42



Link est mort ... - Nyxynyx