В настоящее время я использую ActiveDirectory для аутентификации на своих серверах Ubuntu 10.04 с помощью инструмента Centrify Express. В Centrify есть собственный файл .so, который настраивается в /etc/pam.d/common-auth.
Я хотел бы выполнить обычную аутентификацию LDAP (в обход центрифуги) только для пользователей SFTP (а не для входа в SSH). Как мне настроить /etc/pam.d/sshd, чтобы попробовать аутентификацию LDAP для входа в систему через SFTP, но не через SSH? Идея в том, что мой SFTP OU позволит пользователям скачивать и выгружать файлы, но они не смогут получить оболочку.
Если я правильно понимаю ваш вопрос, вы хотите предоставить только sftp
сервис (то есть, нет интерактивного входа через ssh
).
Вы можете заставить соединения использовать sftp
сервис, добавив это в свой sshd_config
файл:
ForceCommand internal-sftp
Это задокументировано в sshd_config
страница руководства:
ForceCommand
Forces the execution of the command specified by ForceCommand, ignoring any
command supplied by the client and ~/.ssh/rc if present. The command is
invoked by using the user’s login shell with the -c option. This applies to
shell, command, or subsys- tem execution. It is most useful inside a Match
block. The command originally supplied by the client is available in the
SSH_ORIGINAL_COMMAND environment variable. Specifying a command of
“internal-sftp” will force the use of an in-process sftp server that requires
no support files when used with ChrootDirectory.
Вы можете изменить /etc/pam.d/sshd
настроить sshd на использование обычного pam_ldap
модуль, а не pam
модуль предоставлен Centrify.
После внесения этих изменений конфигурации sftp
соединения будут использовать обычные LDAP
аутентификация и интерактивные оболочки будут недоступны.
Я не думаю, что вы могли бы ограничить это в pam, но если вы сделаете всех пользователей, которых хотите, чтобы ограничить членов одной группы, вы можете ограничить ssh то, что эти пользователи могут делать через сопоставление группы blah.