
Я настроил сервер Keycloak и работаю над его интеграцией с сервером Linux, чтобы позволить пользователям Keycloak аутентифицироваться на сервере Linux, используя свои учетные данные Keycloak.
В идеале я бы хотел, чтобы при запуске ssh server-name@server-ip
команды пользователями открывалась страница входа в Keycloak, где они могли бы ввести свои учетные данные и получить доступ к системе.
Мои исследования привели меня к изучению PAM как способа настройки интеграции Keycloak с сервером Linux. Я установил двоичный файл kc-ssh-pam и добавил следующую строку в каталог /etc/pam.d/sshd:
auth sufficient pam_exec.so expose_authtok log=/var/log/kc-ssh-pam.log /opt/kc-ssh-pam/kc-ssh-pam
После этого я отредактировалconfig.tomlфайл с моими конфигурациями Keycloak, как показано ниже, и запустил sudo systemctl restart sshd
для перезапуска демона ssh. Однако я не получаю ожидаемого результата, когда запускаю команду ssh server-name@server-ip.
realm = "realm_name"
endpoint = "https://keycloak_server_url"
clientid = "ssh_client_id"
clientsecret = "ssh_client_secret"
clientscop = "openid"
Это идеальный вариант использования? У меня ограниченные ресурсы для достижения этого, поэтому я был бы признателен за любые шаги или рекомендуемые руководства, которые могли бы помочь мне достичь этого.
решение1
Он не откроет страницу keycloak для входа пользователя в систему. Принцип работы заключается в том, что он получает токен предоставления пароля от keycloak на основе учетных данных пользователя.
Когда вы запускаете ssh server-name@server-ip
, пользователь должен существовать на server-ip
машине заранее без пароля или с ним, этот модуль не создает пользователя автоматически. Однако в инструкциях упоминается скрипт, который вы можете использовать для автоматического создания пользователей при первой попытке входа в систему.