
Configurei um servidor Keycloak e estou trabalhando para integrá-lo a um servidor Linux para permitir que os usuários do Keycloak se autentiquem no servidor Linux usando suas credenciais do Keycloak.
Idealmente, gostaria que, quando os usuários executassem o ssh server-name@server-ip
comando, ele abrisse uma página de login do Keycloak onde pudessem inserir suas credenciais e obter acesso ao sistema.
Minha pesquisa me levou a explorar o PAM como uma forma de configurar a integração do Keycloak com um servidor Linux. Instalei o binário kc-ssh-pam e adicionei a seguinte linha ao diretório /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
Depois disso, editei oconfiguração.tomlarquivo com minhas configurações do Keycloak conforme mostrado abaixo e executei sudo systemctl restart sshd
para reiniciar o daemon ssh. No entanto, não estou obtendo o resultado esperado ao executar o comando ssh server-name@server-ip.
realm = "realm_name"
endpoint = "https://keycloak_server_url"
clientid = "ssh_client_id"
clientsecret = "ssh_client_secret"
clientscop = "openid"
Este é um caso de uso ideal? Tenho recursos limitados para fazer isso, então agradeceria quaisquer etapas ou guias recomendados que pudessem me ajudar a conseguir isso.
Responder1
Ele não abrirá a página do keycloak para login do usuário; a maneira como funciona é obter o token de concessão de senha do keycloak com base nas credenciais do usuário.
Quando você executa ssh server-name@server-ip
, o usuário deve existir na server-ip
máquina previamente sem nenhuma senha ou com ela, este módulo não cria o usuário automaticamente. No entanto, existe um script mencionado nas instruções que você pode usar para criar os usuários automaticamente ao tentar fazer login pela primeira vez.