SSH з псевдонімом користувача?


10

Це питання не є дублікатом. Будь ласка, прочитайте його, перш ніж позначити його як такого.

Чи можна призначити псевдоніми або псевдоніми користувачам на сервері Linux і SSH на сервері за допомогою псевдонімів? Я щось розмірковую за рядками псевдонімів для різних команд, які додаються до файлу .bashrcчи .bash_aliasesфайлу, наприклад:

alias grep='grep --color=auto'

Наприклад, якщо є вимога (правило бізнесу), щоб налаштувати користувачів на сервер з їх повним ім'ям, наприклад, john_smithзамість того , щоб просто їх ім'я ( john), але ми хочемо прозвисько, john_smith fruitloopsі ми хочемо, щоб Джон міг:

ssh john_smith@ip_address

так само, як:

ssh fruitloops@ip_address

Якщо можливо, де встановити відображення між користувачем та його псевдонімом? Чи fruitloopsповинен користувач також існувати на суворому рівні?

Це питання стосується налаштування псевдоніма для користувача, а не хоста .


1
З псевдонімом господаря, який ви могли б зробитиssh fruitloop
Таккат

Моє запитання стосується налаштування псевдоніма для користувача, а не хоста. fruitloopsвідноситься до користувача john_smith, а не до IP-адреси.
dw8547

1
Я вважаю, що це не ті самі питання ... +1 до питання;)
Равексіна,

1
Вибачте за моє непорозуміння - псевдонім хоста SSH повинен бути встановлений на клієнті, але вам потрібно рішення, яке було налаштовано на сервері . Відкликав моє закрите голосування.
Таккат

1
Я думаю, що це можливо за допомогою деяких хитрощів PAM (якщо ви використовуєте PAM, який є). Можливо, я зможу знайти якийсь старий код у цих рядках (якщо це зробити, я опублікую як відповідь).
Сумуду Фернандо

Відповіді:


14

Кожен користувач в Linux має лише одне ім’я, і це його єдине ім'я. ви можете створювати псевдоніми для команд, не для користувачів.

Але ви можете створити другого користувача з тим самим UID, домашнім каталогом та паролем, який би зробив для вас хитрість.


Отже, мої /etc/passwdзаписи, відповідні цим користувачам, виглядатимуть так: john_smith:x:1001:1001:,,,:/home/john_smith:/bin/bashі fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bash?
dw8547

2
Я спробував 3 різних підходу після додавання користувача john_smithдо UID = 1001. 1) adduser --home /home/john_smith --uid 1001 fruitloops , це не спрацювало ( adduserне вдалось, тому що було прийнято userid) 2) useradd --home /home/john_smith --non-unique --uid 1001 fruitloops , це спрацювало, але призвело до певної поведінки, яка не була бажаною 3) Нарешті я додав рядок fruitloops:x:1001:1001:,,,:/home/john_smith:/bin/bashбезпосередньо у /etc/passwdфайл, і це було найближче до того, що я був після . Я SSH в ip_addressяк fruitloopsі приземляюсь /home/john_smithпо прибуттю.
dw8547

1
Я збираюся посперечатися з вашими формулюваннями тут. У вашому сценарії ви створили одного користувача (1001) з двома різними іменами для входу. Ви цього не зробили, але немає причин, щоб ці два імені не мали різних домашніх каталогів та оболонок для входу. Увійдіть як "fruloops" та створіть файл. Тепер перевірте каталог, і ви побачите, що john_smith показаний як власник файлу, тому що це ім'я, знайдене в / etc / passwd для uid 1001. Ми можемо сперечатися про те, чи є john_smith ім'ям, а fruloops - псевдонімом, або john_smith є первинною назвою і плодовими елементами другорядними, але це семантично.
Monty Harder

2
"Ви можете створити другого користувача з тим самим UID, домашньою каталогом та паролем" - це звучить як жахливий хак, який не гарантовано працює в різних реалізаціях, сумісних з POSIX. POSIX вимагає, щоб відносини між іменами користувачів та ідентифікаторами користувачів були двосторонніми.
Девід Фоерстер

@ dw8547 Чи можете ви пояснити трохи більше про небажану поведінку з команди useradd?
Monty Harder

0

Я не пробував цього, але інший варіант, окрім двох користувачів, відображених на одному UID (який IMO видається небезпечним, але цей варіант, мабуть, однаково небезпечний), - це щоб один користувач виконував функції перенаправлення на основі ключа SSH. Ось як зазвичай працюють сховища управління джерелами, які використовують SSH.

Дозвольте зателефонувати користувачеві me. Кожен буде використовувати цей псевдонім.

ssh me@ip_address

Тепер у користувачів meє відкриті ключі для всіх користувачів ~/.ssh/authorized_keys.

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

Вам потрібно буде зробити так, щоб користувач meмав можливість судо, як інші користувачі, і вам потрібно буде керувати meфайлом авторизованих ключів.

У всякому разі, я цього не перевіряв, але теоретично щось подібне повинно працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.