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также существовать на сервере?

Этот вопрос касается настройки псевдонима для пользователя, а не хоста .

dw8547
источник
1
С псевдонимом хоста вы могли бы сделатьssh fruitloop
Таккат
Мой вопрос о настройке псевдонима для пользователя, а не хоста. fruitloopsотносится к пользователю john_smith, а не к IP-адресу.
dw8547
1
Я считаю, что это не одни и те же вопросы ... +1 к вопросу;)
Ravexina
1
Извините за мое недопонимание - псевдоним хоста SSH должен быть настроен на клиенте, но вам нужно решение, которое было установлено на сервере . Отказался от моего близкого голосования.
Таккат
1
Я думаю, что это возможно с некоторыми хитростями PAM (если вы используете PAM, который есть). Возможно, мне удастся найти какой-нибудь старый код в этом направлении (если я это сделаю, я опубликую в качестве ответа).
Сумуду Фернандо

Ответы:

14

У каждого пользователя в linux есть только одно имя, и это его единственное имя. Вы можете создавать псевдонимы для команд, а не для пользователей.

Но вы можете создать второго пользователя с тем же UID, домашним каталогом и паролем, который бы помог вам.

Ziazis
источник
Таким образом, мои /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не удалось, потому что был использован идентификатор пользователя) 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) с двумя разными именами входа. Вы не сделали этого здесь, но нет причин, по которым два имени не могут иметь разные домашние каталоги и оболочки входа. Войдите как "fruitloops" и создайте файл. Теперь проверьте каталог, и вы увидите, что john_smith показан как владелец файла, потому что это имя, найденное в / etc / passwd для uid 1001. Мы можем поспорить о том, является ли john_smith именем, а fruitloops - псевдонимом, или john_smith. это первичное имя, а плодовые петли вторичны, но это семантическое.
Монти Хардер
2
«вы можете создать второго пользователя с тем же UID, домашним каталогом и паролем» - это звучит как ужасный взлом, который не гарантированно будет работать в разных реализациях, совместимых с POSIX. POSIX требует, чтобы отношения между именами пользователей и идентификаторами пользователей были двунаправленными.
Дэвид Фёрстер
@ dw8547 Можете ли вы объяснить немного больше о нежелательном поведении команды useradd?
Монти Хардер
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была возможность sudo как у других пользователей, и вам нужно будет управлять meфайлом авторизованных ключей.

Во всяком случае, я не проверял это, но в теории что-то подобное должно работать.

Адам Гент
источник