SSH avec un alias d'utilisateur?

10

Cette question n'est pas un doublon. Veuillez le lire avant de le marquer comme tel.

Est-il possible d'attribuer des surnoms ou des alias aux utilisateurs d'un serveur Linux et SSH dans le serveur en utilisant les surnoms? Je pense à quelque chose dans le sens des alias pour diverses commandes qui sont ajoutées au .bashrcou au .bash_aliasesfichier, par exemple:

alias grep='grep --color=auto'

Par exemple, s'il y a une exigence (règle commerciale) de configurer des utilisateurs sur le serveur avec leur nom complet, par exemple, john_smithau lieu de simplement leur prénom ( john) mais nous voulons un surnom john_smith fruitloopset nous voulons que John puisse:

ssh john_smith@ip_address

aussi bien que:

ssh fruitloops@ip_address

Si c'est possible, où le mappage entre un utilisateur et son surnom serait-il configuré? L'utilisateur devrait-il fruitloopségalement exister sur le serveur?

Cette question concerne la configuration d'un alias pour un utilisateur, pas un hôte .

dw8547
la source
1
Avec un alias d'hôte que vous pourriez fairessh fruitloop
Takkat
Ma question concerne la configuration d'un alias pour un utilisateur, pas l'hôte. fruitloopsfait référence à l'utilisateur john_smith, pas à l'adresse IP.
dw8547
1
Je crois que ce ne sont pas les mêmes questions ... +1 à la question;)
Ravexina
1
Désolé pour mon malentendu - un alias d'hôte SSH devrait être configuré sur le client mais ce dont vous avez besoin est une solution qui a été configurée sur le serveur . Retiré mon vote serré.
Takkat
1
Je pense que cela est possible avec une supercherie PAM (si vous utilisez PAM). Je pourrai peut-être trouver un ancien code dans ce sens (si je le fais, je posterai comme réponse).
Sumudu Fernando

Réponses:

14

Chaque utilisateur sous Linux n'a qu'un seul nom et c'est son seul nom. vous pouvez créer des alias pour les commandes et non pour les utilisateurs.

Mais vous pouvez créer un deuxième utilisateur avec le même UID, le répertoire de base et le même mot de passe qui feraient l'affaire pour vous.

Ziazis
la source
Ainsi, mes /etc/passwdentrées correspondant à ces utilisateurs ressembleraient à: john_smith:x:1001:1001:,,,:/home/john_smith:/bin/bashet fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash?
dw8547
2
J'ai essayé 3 approches différentes après avoir ajouté un utilisateur john_smithavec UID = 1001. 1) adduser --home /home/john_smith --uid 1001 fruitloops , cela n'a pas fonctionné (a adduseréchoué car l'ID utilisateur a été pris) 2) useradd --home /home/john_smith --non-unique --uid 1001 fruitloops , cela a fonctionné mais a conduit à un comportement qui n'était pas souhaitable 3) Enfin, j'ai ajouté la ligne fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bashdirectement dans le /etc/passwdfichier et c'était plus proche de ce que je recherchais . Je SSH dans ip_addressas fruitloopset atterris à /home/john_smithl'arrivée.
dw8547
1
Je vais chicaner avec votre formulation ici. Dans votre scénario, vous avez créé un utilisateur (1001) avec deux noms de connexion différents. Vous ne l'avez pas fait ici, mais il n'y a aucune raison pour que les deux noms ne puissent pas avoir des répertoires de départ et des shells de connexion différents. Connectez-vous en tant que "fruitloops" et créez un fichier. Maintenant, vérifiez le répertoire et vous verrez que john_smith est affiché en tant que propriétaire du fichier, car c'est le premier nom trouvé dans / etc / passwd pour l'uid 1001. Nous pouvons nous demander si john_smith est le nom et fruitloops est un alias, ou john_smith est le nom principal et les boucles de fruits secondaires, mais c'est sémantique.
Monty Harder
2
"vous pouvez créer un deuxième utilisateur avec le même UID, le même répertoire de base et le même mot de passe" - cela ressemble à un terrible piratage qui n'est pas garanti de fonctionner sur différentes implémentations compatibles POSIX. POSIX requiert que la relation entre les noms d'utilisateur et les ID utilisateur soit distincte dans les deux sens.
David Foerster
@ dw8547 Pouvez-vous expliquer un peu plus le comportement indésirable de la commande useradd?
Monty Harder
0

Je n'ai pas essayé cela, mais une autre option en plus des deux utilisateurs mappés sur un seul UID (ce que l'OMI semble dangereux mais cette option est probablement tout aussi dangereuse) consiste à avoir un seul utilisateur servant de redirecteur basé sur la clé SSH. C'est ainsi que fonctionnent généralement les référentiels de contrôle de source qui utilisent SSH.

Permet d'appeler l'utilisateur me. Tout le monde utilisera cet alias.

ssh me@ip_address

Maintenant, l'utilisateur mea toutes les clés publiques des utilisateurs dans leur ~/.ssh/authorized_keys.

command="sudo -i -u user-mapped-to-key" ssh-rsa key

Vous devrez faire en sorte que l'utilisateur meait la possibilité de sudo comme les autres utilisateurs et vous devrez gérer le mefichier des clés autorisées.

Quoi qu'il en soit, je n'ai pas testé cela, mais en théorie, quelque chose comme ça devrait fonctionner.

Adam Gent
la source