В компании, где я работаю, у нас есть определенные общие учетные записи, которые любой может использовать через SSH для выполнения определенных задач. На данный момент у нас слишком много пользователей, и у каждого из них есть свои привилегии юзабилити, такие как псевдонимы оболочки и т. Д.
Я пытаюсь разрешить пользователям настраивать параметры оболочки в ~/.bash_profile
зависимости от того, кто на самом деле вошел в систему. Например, когда Джонатан входит в систему, я хочу, чтобы оболочка дополнительно выполнялась ~/.Jonathan_profile
, а для Боба я хочу, чтобы оболочка представляла исходный ~/.Bob
профиль.
Однако я не уверен, есть ли способ сообщить имя учетной записи на удаленном компьютере пользователя, вошедшего в систему с использованием SSH.
Любые советы приветствуются.
Ответы:
Вы не можете сказать, какую учетную запись использует клиент, потому что клиент не сообщает вам. Но есть такие вещи, которые вы можете сделать:
Создайте отдельные учетные записи и предоставьте пользователям доступ к общей учетной записи с помощью sudo. Это действительно предпочтительный вариант, который дает вам лучший аудит (всегда регистрируется, кто что делает), и пользователи могут добавлять в свои учетные записи любые утилиты, которые они хотят. Это, однако, также большая часть работы.
Используйте только аутентификацию с открытым ключом и установите переменную среды с использованием синтаксиса:
в
.ssh/authorized_keys
. Чем вы смотрите$END_USER
в.profile
. Очевидно, вы должны установить его для каждого открытого ключа, используемого для входа в систему.Скажите всем, чтобы установить переменную среды от клиента, используя
SendEnv
опцию (сервер должен иметь соответствующийAcceptEnv
набор). Снова вы проверяете переменную в.profile
.Получить исходный IP-адрес и порт из
SSH_CONNECTION
переменной и использоватьident
для получения фактического исходного пользователя; ноidentd
должен быть запущен на клиентах, и это редко происходит в наши дни, потому что это не очень полезно, но полезно для потенциального злоумышленника, чтобы получить некоторую информацию о вашей системе.Для более сложной настройки в пределах одной учетной записи всегда можно написать собственную оболочку оболочки и использовать ее с
command
атрибутом в авторизованных ключах. Это также довольно трудоемкая работа, но ее можно использовать для реализации практически любых ограничений и аудита без необходимости создания отдельных учетных записей.Примечание: я бы определенно рекомендовал использовать только открытые ключи и отключать пароль. Таким образом, если вы хотите отменить чей-то доступ, вы просто удалите его ключ.
источник