1

Я хотел бы изменить файл sshd_config для запуска одного сценария, если пользователь ssh подключен с паролем, и другого сценария, если пользователь ssh подключен к серверу с использованием подписанного сертификата SSH. Я вижу, это может быть возможно с комбинацией Match и ForceCommand, но мне трудно понять, как определить, использовал ли пользователь PasswordAuthentication для входа или SSH Cert для входа на сервер.

Например, что-то вроде ниже:

Соответствие (если пользователь использовал пароль) ForceCommand /usr /sbin /passwordscript

Соответствие (если пользователь использовал pubkey) ForceCommand /usr /sbin /pubkeyscript

Match (если пользователь использовал TrustedUserCAKeys (?)) ForceCommand /usr /sbin /sshcertdscript

Есть ли способ узнать, как пользователь пытается выполнить ssh на сервере, будь то пароль, открытый ключ или TrustedUserCAKeys(SSH Cert)?

Заранее спасибо..

1 ответ1

1

В authorized_keys файл, вы можете указать команду , которая будет использоваться при проверке подлинности конкретной пары ключей. Вы также можете установить переменную environment используя параметр среды :

command="/path/script",command="KEY_WAS_USED=yes" ssh-rsa ...

И затем вы можете проверить наличие переменной в каком-либо скрипте запуска, чтобы выполнить ваш «неключевой» (пароль) скрипт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .