
我已經設定了一個 Keycloak 伺服器,並且正在努力將其與 Linux 伺服器集成,以允許 Keycloak 中的用戶使用其 Keycloak 憑證對 Linux 伺服器進行身份驗證。
理想情況下,我希望當使用者執行該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
之後我編輯了設定檔文件與我的 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
事先存在於電腦上,沒有任何密碼或有密碼,該模組不會自動建立使用者。但是,說明中提到了一個腳本,當您第一次嘗試登入時,您可以使用該腳本自動建立使用者。