Назад |
Перейти на главную страницу
Аутентификация с открытым ключом SSH - можно ли использовать один открытый ключ для нескольких пользователей?
Я хочу развернуть сервер RHEL5 с помощью Kickstarts, и в целях безопасности я хочу разрешить удаленным клиентам подключаться к серверу по ssh только в качестве пользователя «Разработчик» (я уже настроил конфигурацию sshd для отключения корневого доступа). У меня есть несколько вопросов по настройке:
- Должен ли локальный пользователь с именем «Разработчик» находиться на каждом клиентском компьютере при входе на сервер? (Я не думаю, что это так, но подумал, что просто подтвердю, пока я на нем)
- Могу ли я перед развертыванием сервера просто настроить файл authorized_keys с записью для каждого открытого ключа RSA клиента? И имеет ли значение, что пользователь на самом деле вводит, скажем,
ssh -p 22020 Developer@server
(т.е. повлияет ли это на любую информацию, требуемую в файле authorized_keys?) - Требуется ли открытый ключ сервера в файле known_hosts клиента (я хочу, чтобы это работало каждый время без подсказок)?
- Требуется ли для пользователя Developer домашний каталог с ~ / .ssh или я могу просто настроить сервер sshd с ключами из другого каталога? (Пользователю-разработчику не требуется доступ к какой-либо информации в домашнем каталоге, только файлы в папке с именем '/ var / Tasks'?
Во-первых, нет никакого преимущества в безопасности, позволяя пользователям подключаться только с именем пользователя «разработчик». Если вы хотите, чтобы пользователи имели общий доступ к одной и той же группе файлов, поместите их в одну группу UNIX и пусть / var / Tasks принадлежит этой группе. Отдельные имена пользователей позволяют проводить аудит, лучше устранять неполадки и т. Д.
Что касается других ваших вопросов:
- Имена клиентов не важны. При подключении пользователи могут указать, какое удаленное имя пользователя они хотят использовать:
ssh username@example.com
- Вы можете ввести в authorized_keys столько пользовательских ключей, сколько у вас есть на диске, и вы можете сделать это до развертывания сервера. Кроме того, тот же файл authorized_keys читается независимо от того, какой номер порта прослушивает sshd.
- Да, открытый ключ сервера будет храниться в known_hosts и при первом подключении воля предложить пользователю принять удаленный ключ. Это то, что позволяет SSH обнаруживать атаки типа «злоумышленник в середине», и если пользователи просто слепо принимают любой ключ, SSH становится уязвимым для атак «злоумышленник посередине». Если у вас есть достаточный доступ к клиентским машинам, вы можете добавить отпечаток ключа удаленного сервера в файл known_hosts каждого клиента. Это единственный способ избежать этого запроса.
- Вы можете использовать ключевое слово AuthorizedKeysFile в sshd_config, чтобы указать, где вы хотите, чтобы sshd искал ключи на сервере. Я кладу ключи в
/etc/ssh/keys/%u
где% u - это файл с именем пользователя, и я удостоверяюсь, что у пользователя есть доступ только для чтения.