Есть ли способ настроить SSH для проверки одного файла authorized_keys для нескольких пользователей? Я знаю, что могу скопировать открытый ключ в файл authorized_keys каждого пользователя, но для простоты управления мне нужен дополнительный файл authorized_keys для администраторов, который позволил бы им входить в систему для всех пользователей (или определенных групп пользователей).
Вы можете использовать AuthorizedKeysFile
директиву в / etc / ssh / sshd_config для этого. Местоположение по умолчанию: .ssh/authorized_keys
но вы можете использовать что-то, что содержит абсолютный путь, например.
AuthorizedKeysFile /path/to/your/keyfile
страницы руководства говорят это
AuthorizedKeysFile
Задает файл, содержащий открытые ключи, которые можно использовать для аутентификации пользователя. AuthorizedKeysFile может содержать токены формы% T, которые подставляются во время установки соединения. Определены следующие токены: %% заменяется литералом ’%’,% h заменяется домашним каталогом аутентифицируемого пользователя, а% u заменяется именем пользователя этого пользователя. После раскрытия AuthorizedKeysFile принимается за абсолютный путь или путь относительно домашнего каталога пользователя. По умолчанию - «.ssh / authorized_keys».
редактировать: Вы должны проголосовать за ответ @Iain выше. Он полный и точный. Мой ответ ниже ориентирован на совместное использование частный ключи - явно недоразумение с моей стороны. Я оставлю этот ответ здесь, так как считаю его ценной информацией, но не для этого конкретного вопроса.
Я не знаю вашего варианта использования, но мне хочется сказать: «Вы делаете это неправильно».
У каждого пользователя должен быть свой кепайр. Таким образом, когда пользователь уходит, переводится, повышается до роли управления или чего-то еще, что требует отзыва прав, вы просто отзываете этот ключ. Это также значительно усложняет эффективный одитинг.
Если вам нужно, чтобы пользователи могли выдавать себя за других пользователей, их следует настроить для этого с помощью sudo
. Совместное использование SSH-ключей обычно не является хорошей идеей.
Ваши администраторы должны использовать и подходить (для вашей среды) комбинацию sudo
и su
.
ssh
не подходит для этого.
Противоречие Править (Извините, похоже, у меня не было титульной слепоты. Спасибо Zoredache):
Поместите все сервисные аккаунты в один group
, используйте эту группу как часть Match
блокировать в sshd_config
указать AuthorisedKeysFile
вы хотите, чтобы их использовали все. (Группа совпадений такова, что все учетные записи не затрагиваются.) Однако они больше не будут иметь отдельные файлы AuthorisedKeysFiles. openssh-lpk
может позволить отдельным учетным записям иметь свои собственные ключи в дополнение, но я не уверен в этом.
На момент написания этого поста это можно было выполнить с помощью этой конфигурации в sshd_config:
AuthorizedKeysFile .ssh/authorized_keys /etc/ssh/authorized_keys
И убедитесь, что / etc / ssh / authorized_keys доступен для чтения, по крайней мере, пользователю, под которым вы пытаетесь войти. Если это chmod 600, доступный для чтения только root, он не будет работать.
chmod 644 /etc/ssh/authorized_keys
Тогда все заработает.
Таким образом, нет необходимости без необходимости консолидировать все открытые ключи SSH в одном месте, и мы сохраняем естественную функциональность поиска в ~/.ssh/authorized_keys
.
Поскольку файл содержит только открытые ключи, мы изменяем код до 644, чтобы сделать его доступным для чтения всем, но не для записи. Альтернативным способом было бы создать настраиваемую группу, чтобы раскрыть ее немного меньше, но, тем не менее, доступ к этому файлу всегда будет иметь более одного пользователя, независимо от того, что мы делаем, поэтому нет необходимости делать разрешения слишком запутанными для этого файла в Это дело.
Обратите внимание, что все пользователи включают root
также, поэтому вам следует добавить только себя в /etc/ssh/authorized_keys
на сервере, к которому у вас уже есть root-доступ.