SSH z aliasem użytkownika?

10

To pytanie nie jest duplikatem. Przeczytaj to przed oznaczeniem go jako takiego.

Czy możliwe jest przypisanie pseudonimów lub aliasów użytkownikom na serwerze Linux i SSH do serwera przy użyciu pseudonimów? Myślę o czymś podobnym do aliasów dla różnych poleceń dodawanych do pliku .bashrclub .bash_aliases, np .:

alias grep='grep --color=auto'

Na przykład, jeśli istnieje wymóg (reguła biznesowa), aby skonfigurować użytkowników na serwerze z ich pełną nazwą, np. john_smithZamiast tylko imienia ( john), ale chcemy nadać pseudonim john_smith fruitloopsi chcemy, aby John mógł:

ssh john_smith@ip_address

jak również:

ssh fruitloops@ip_address

Jeśli to możliwe, gdzie można ustawić mapowanie między użytkownikiem a jego pseudonimem? Czy użytkownik fruitloopsmusiałby również istnieć na serwerze?

To pytanie dotyczy ustawienia aliasu dla użytkownika, a nie hosta .

dw8547
źródło
1
Z aliasem hosta, który możesz zrobićssh fruitloop
Takkat
Moje pytanie dotyczy ustawienia aliasu dla użytkownika, a nie hosta. fruitloopsodnosi się do użytkownika john_smith, a nie adresu IP.
dw8547
1
Wierzę, że to nie są te same pytania ... +1 do pytania;)
Ravexina
1
Przepraszam za moje nieporozumienie - alias hosta SSH musiałby zostać skonfigurowany na kliencie, ale potrzebne jest rozwiązanie skonfigurowane na serwerze . Wycofałem mój głos.
Takkat
1
Myślę, że jest to możliwe w przypadku niektórych sztuczek PAM (jeśli używasz PAM). Być może uda mi się znaleźć trochę starego kodu w tym kierunku (jeśli to zrobię, opublikuję jako odpowiedź).
Sumudu Fernando

Odpowiedzi:

14

Każdy użytkownik w systemie Linux ma tylko jedno imię i to jest jego jedyne imię. możesz tworzyć aliasy dla komend nie dla użytkowników.

Ale możesz utworzyć drugiego użytkownika z tym samym UID, katalogiem domowym i hasłem, które załatwiłyby sprawę.

Ziazis
źródło
Więc moje /etc/passwdwpisy odpowiadające tym użytkownikom wyglądałyby: john_smith:x:1001:1001:,,,:/home/john_smith:/bin/bashi fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash?
dw8547
2
Próbowałem 3 różnych podejść po dodaniu użytkownika john_smithz UID = 1001. 1) adduser --home /home/john_smith --uid 1001 fruitloops , to nie działało ( addusernie powiodło się, ponieważ wzięto identyfikator użytkownika) 2) useradd --home /home/john_smith --non-unique --uid 1001 fruitloops , to działało, ale prowadziło do pewnych zachowań, które nie były pożądane 3) W końcu dodałem linię fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bashbezpośrednio do /etc/passwdpliku i to było najbliższe temu, co chciałem . I do SSH ip_addressjak fruitloopsi gruntów w /home/john_smithdniu przyjazdu.
dw8547
1
Spieram się tutaj z twoimi sformułowaniami. W twoim scenariuszu utworzyłeś jednego użytkownika (1001) z dwoma różnymi nazwami logowania. Nie zrobiłeś tego tutaj, ale nie ma powodu, aby te dwie nazwy nie mogły mieć różnych katalogów domowych i powłok logowania. Zaloguj się jako „pętle owocowe” i utwórz plik. Teraz sprawdź katalog, a zobaczysz, że john_smith jest pokazany jako właściciel pliku, ponieważ jest to pierwsze imię znalezione w / etc / passwd dla Uid 1001. Możemy spierać się o to, czy john_smith to nazwa, a fruitloops to alias, czy john_smith to pierwotna nazwa, a pętle owocowe drugorzędne, ale to semantyczne.
Monty Harder
2
„możesz utworzyć drugiego użytkownika z tym samym UID, katalogiem domowym i hasłem” - to brzmi jak okropny hack, który nie gwarantuje działania w różnych implementacjach zgodnych z POSIX. POSIX wymaga, aby relacje między nazwami użytkowników i identyfikatorami użytkowników były dwukierunkowo odrębne.
David Foerster
@ dw8547 Czy możesz wyjaśnić nieco więcej na temat niepożądanego zachowania w poleceniu useradd?
Monty Harder
0

Nie próbowałem tego, ale inną opcją poza dwoma użytkownikami zmapowanymi na jeden identyfikator UID (który IMO wydaje się niebezpieczny, ale ta opcja jest prawdopodobnie równie niebezpieczna) jest to, aby jeden użytkownik pełnił funkcję przekierowującego opartego na kluczu SSH. Tak zazwyczaj działają repozytoria kontroli źródła korzystające z SSH.

Pozwala zadzwonić do użytkownika me. Wszyscy będą używać tego aliasu.

ssh me@ip_address

Teraz użytkownik mema w swoich kluczach publicznych wszystkich użytkowników ~/.ssh/authorized_keys.

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

Musisz sprawić, aby użytkownik memiał możliwość sudo, podobnie jak inni użytkownicy, i będziesz musiał zarządzać meplikiem autoryzowanych kluczy.

W każdym razie nie testowałem tego, ale teoretycznie coś takiego powinno działać.

Adam Gent
źródło