Чтобы изменить путь к файлу, вы можете указать опцию AuthorizedKeysFile в sshd_config (при условии, что сервер запускает OpenSSH). Вы можете указать несколько путей относительно домашнего каталога пользователя или абсолютных путей с расширением %u
до имени пользователя.
Например, чтобы сохранить стандартное расположение authorized_keys и добавить файл в /etc:
AuthorizedKeysFile .ssh/authorized_keys /etc/ssh/users/%u.txt
Чтобы использовать внешнюю команду, если сервер использует OpenSSH 6.2 или новее, вы можете указать AuthorizedKeysCommand в файле sshd_config сервера, указывая на пользовательскую программу или скрипт.
Программа будет запускаться при каждом входе в систему, получать имя пользователя в качестве параметра командной строки и должна выводить список ключей для этого пользователя (используя тот же формат, что иized_keys) через stdout.
Например, если вы используете LDAP, клиент SSSD LDAP уже включает в себя инструмент sss_ssh_authorizedkeys
для получения ключей из атрибута sshPublicKey пользователя.
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody