authorized_keys для нескольких пользователей chroot с одним и тем же домашним каталогом

authorized_keys для нескольких пользователей chroot с одним и тем же домашним каталогом

Мы используем CentOS 6.9 с OpenSSH_5.3p1 и создали chrooted-аккаунты для внешних пользователей с тем же домашним каталогом (примонтированным к htdocs). Проблема в том, что файл .ssh/authorized_keys2принадлежит первому пользователю (и это уже работает). Как мне заставить его работать для другого пользователя?

Я попытался добавить AuthorizedKeysFileв sshd_config несколько путей к файлам и получил ошибку garbage at end of line.

Я попытался добавить AuthorizedKeysFilein sshd_configв блок соответствия второго пользователя и получил ошибку 'AuthorizedKeysFile' is not allowed within a Match block.

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

Есть предложения, как это решить? Может, мне придется обновить OpenSSH до более новой версии, которая поддерживает несколько записей AuthorizedKeysFile(я думаю, мне придется собрать ее с помощью rpm)? Что насчет обновлений безопасности после этого?

решение1

Одним из вариантов является использование токенов для предоставления каждому пользователю уникального authorized_keysфайла.

Отman sshd_config:

AuthorizedKeysFile

Указывает файл, содержащий открытые ключи, которые могут использоваться для аутентификации пользователя. Формат описан в разделе ФОРМАТ ФАЙЛА AUTHORIZED_KEYS в sshd(8). AuthorizedKeysFile может содержать токены формы %T, которые подставляются при настройке соединения. Определены следующие токены: %%заменяется литералом %, %hзаменяется домашним каталогом аутентифицируемого пользователя и%uзаменяется именем пользователя этого пользователя. После расширения AuthorizedKeysFileпринимается как абсолютный путь или путь относительно домашнего каталога пользователя. Можно перечислить несколько файлов, разделенных пробелом. В качестве альтернативы этот параметр может быть установлен на noneпропуск проверки ключей пользователя в файлах. Значение по умолчанию — .ssh/authorized_keys .ssh/authorized_keys2.

Выделено мной.

Итак, вы можете установить:

AuthorizedKeysFile    .ssh/%u_authorized_keys

Затем для пользователя fooсоздайте authorized_keysфайл .ssh/foo_authorized_keys.

Примечание о разрешениях

Отчеловек sshd:

~/.ssh/authorized_keys
...
Если этот файл, каталог ~/.sshили домашний каталог пользователя доступны для записи другим пользователям, то файл может быть изменен или заменен неавторизованными пользователями. В этом случае sshd не позволит использовать его, если только опция не StrictModes установлена ​​в значение no.

Поэтому вам может потребоваться вынести ключи наружу .ssh/или установить StrictModesна no. Если вы установите, StrictModesчтобы noубедиться, что другой пользователь не сможет создать authorized_keysдля кого-то другого, или удалите авторизованные ключи другого пользователя. Вероятно, лучше всего сделать что-то вроде:

AuthorizedKeysFile    .ssh_%u/authorized_keys

Создайте каталог .ssh_foo/для пользователя foo, который может только fooчитать/писать.


Вы можете выбрать, хотите ли вы также разрешить, .ssh/authorized_keysиспользуя

AuthorizedKeysFile    .ssh/authorized_keys    .ssh_%u/authorized_keys

Это позволит "нормальной" форме authorized_keysпо-прежнему работать, а authorized_keysфайл должен принадлежать вашему пользователю и иметь правильные разрешения, иначе он будет проигнорирован. Тем не менее, учтите, что не должно быть возможности создать authorized_keysфайл для другого пользователя, что может означать просто касание файла как root, чтобы он был пуст.

Связанный контент