SSH mit einem Benutzeralias?

10

Diese Frage ist kein Duplikat. Bitte lesen Sie es, bevor Sie es als solches markieren.

Ist es möglich, Benutzern auf einem Linux-Server und SSH mithilfe der Spitznamen Spitznamen oder Aliase zuzuweisen? Ich denke etwas in der Art der Aliase für verschiedene Befehle, die der .bashrcoder der .bash_aliasesDatei hinzugefügt werden, z.

alias grep='grep --color=auto'

Zum Beispiel, wenn es eine Anforderung (Geschäftsregel) gibt, Benutzer auf dem Server mit ihrem vollständigen Namen einzurichten, z. B. john_smithanstelle nur ihres Vornamens ( john), aber wir möchten einen Spitznamen john_smith fruitloopsund wir möchten, dass John in der Lage ist:

ssh john_smith@ip_address

ebenso gut wie:

ssh fruitloops@ip_address

Wenn möglich, wo würde die Zuordnung zwischen einem Benutzer und seinem Spitznamen eingerichtet? Müsste der Benutzer fruitloopsauch auf dem Server existieren?

Bei dieser Frage geht es darum, einen Alias ​​für einen Benutzer und nicht für einen Host einzurichten .

dw8547
quelle
1
Mit einem Host-Alias ​​könnten Sie tunssh fruitloop
Takkat
Meine Frage betrifft das Einrichten eines Alias ​​für einen Benutzer, nicht für den Host. fruitloopsbezieht sich auf den Benutzer john_smith, nicht auf die IP-Adresse.
Dw8547
1
Ich glaube, das sind nicht die gleichen Fragen ... +1 zu stellen;)
Ravexina
1
Entschuldigen Sie mein Missverständnis. Auf dem Client müsste ein SSH-Host-Alias ​​eingerichtet werden. Sie benötigen jedoch eine Lösung, die auf dem Server eingerichtet wurde . Ich habe meine enge Abstimmung zurückgezogen.
Takkat
1
Ich denke, dass dies mit einigen PAM-Tricks möglich ist (wenn Sie PAM verwenden). Ich kann möglicherweise einen alten Code in dieser Richtung finden (wenn ich das tue, werde ich als Antwort posten).
Sumudu Fernando

Antworten:

14

Jeder Benutzer unter Linux hat nur einen Namen und das ist sein einziger Name. Sie können Aliase für Befehle erstellen, die nicht für Benutzer bestimmt sind.

Sie können jedoch einen zweiten Benutzer mit derselben UID, demselben Ausgangsverzeichnis und demselben Kennwort erstellen, die den Trick für Sie erledigen würden.

Ziazis
quelle
Meine /etc/passwdEinträge, die diesen Benutzern entsprechen, würden also so aussehen: john_smith:x:1001:1001:,,,:/home/john_smith:/bin/bashund fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash?
Dw8547
2
Ich habe 3 verschiedene Ansätze ausprobiert, nachdem ich Benutzer john_smithmit hinzugefügt habe UID = 1001. 1) adduser --home /home/john_smith --uid 1001 fruitloops , dies funktionierte nicht ( adduserfehlgeschlagen, weil Benutzer-ID genommen wurde) 2) useradd --home /home/john_smith --non-unique --uid 1001 fruitloops , dies funktionierte, führte aber zu einem Verhalten, das nicht wünschenswert war 3) Schließlich fügte ich die Zeile fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bashdirekt zur /etc/passwdDatei hinzu und dies war dem am nächsten, was ich suchte . Ich SSH in ip_addressas fruitloopsund lande /home/john_smithbei der Ankunft.
Dw8547
1
Ich werde hier mit Ihrer Formulierung streiten. In Ihrem Szenario haben Sie einen Benutzer (1001) mit zwei verschiedenen Anmeldenamen erstellt. Sie haben es hier nicht getan, aber es gibt keinen Grund, warum die beiden Namen keine unterschiedlichen Home-Verzeichnisse und Login-Shells haben können. Melden Sie sich als "Fruchtschleifen" an und erstellen Sie eine Datei. Überprüfen Sie nun das Verzeichnis und Sie werden sehen, dass john_smith als Eigentümer der Datei angezeigt wird, da dies der Vorname ist, der in / etc / passwd für uid 1001 gefunden wurde. Wir können darüber streiten, ob john_smith der Name ist undruitschleifen ein Alias ​​oder john_smith ist ist der primäre Name und Fruitloops sekundär, aber das ist semantisch.
Monty Harder
2
"Sie können einen zweiten Benutzer mit derselben UID, demselben Home-Verzeichnis und demselben Kennwort erstellen" - das klingt nach einem schrecklichen Hack, der nicht garantiert für verschiedene POSIX-kompatible Implementierungen funktioniert. POSIX erfordert, dass die Beziehung zwischen Benutzernamen und Benutzer-IDs bidirektional unterschiedlich ist.
David Foerster
@ dw8547 Kannst du etwas mehr über das unerwünschte Verhalten des Befehls useradd erklären?
Monty Harder
0

Ich habe dies nicht ausprobiert, aber eine andere Option neben den beiden Benutzern, die einer einzelnen UID zugeordnet sind (was IMO gefährlich erscheint, aber diese Option ist wahrscheinlich ebenso gefährlich), besteht darin, einen einzelnen Benutzer als Redirector basierend auf dem SSH-Schlüssel zu verwenden. So funktionieren Quellcodeverwaltungs-Repositorys, die SSH verwenden, normalerweise.

Rufen wir den Benutzer an me. Jeder wird diesen Alias ​​verwenden.

ssh me@ip_address

Jetzt hat der Benutzer mealle öffentlichen Schlüssel des Benutzers in seinem ~/.ssh/authorized_keys.

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

Sie müssen dem Benutzer medie Möglichkeit geben, wie die anderen Benutzer zu sudo, und Sie müssen die meDatei mit autorisierten Schlüsseln verwalten .

Jedenfalls habe ich das nicht getestet, aber theoretisch sollte so etwas funktionieren.

Adam Gent
quelle