Freebsd

ssh可以生成kerberos票嗎?(FreeBSD)

  • August 19, 2016

TL;博士

我希望能夠使用我第一次登錄時生成的 kerberos 票證從 FreeBSD 主機 ssh 到 FreeBSD 主機。

問題

環境

FreeBSD 10.3,帶有工作的 openldap-sasl-client、kerberos 5(不是 heimdal)、sssd、ssh,並加入了 Active Directory (2008 R2)。我必須從 /usr/ports 源位置編譯 sssd,因為預設情況下不包括我需要的 sssd-ad。我沒有使用 winbind,所以參考 1 沒有幫助。(顯然,FreeBSD 也沒有 authconfig 命令。)我可以執行kinit得很好:

[bgstack15@localhost /]$ kinit
bgstack15@EXAMPLE.COM's Password:
[bgstack15@localhost /]$ klist
Credentials cache: FILE:/tmp/krb5cc_5532829429
       Principal: bgstack15@EXAMPLE.COM

 Issued                Expires               Principal
Aug 18 16:01:16 2016  Aug 19 02:01:16 2016  krbtgt/EXAMPLE.COM@EXAMPLE.COM

在那之後我可以ssh -K secondhost,它把我帶到那裡。

問題是我希望能夠在登錄時生成 Kerberos 票證,或者至少這樣我根本不必輸入密碼。我使用 GSSAPI auth 訪問 localhost,所以我使用了 kerberos 票證。我可以把那個傳給我嗎?

我已經嘗試過的

這是我的/etc/pam.d/sshd

auth            sufficient      pam_opie.so             no_warn no_fake_prompts
auth            requisite       pam_opieaccess.so       no_warn allow_local
auth            sufficient      pam_unix.so             no_warn
auth            sufficient      pam_krb5.so             no_warn use_first_pass forwardable ccache=krb5cc_%u
auth            required        pam_unix.so             no_warn try_first_pass

account         required        pam_nologin.so
account         required        pam_login_access.so
account         sufficient      /usr/local/lib/pam_sss.so       ignore_unknown_user
account         required        pam_unix.so

session         optional /usr/local/lib/pam_sss.so
session         required        /usr/local/lib/pam_mkhomedir.so mode=0700
session         required        pam_permit.so

password        sufficient      /usr/local/lib/pam_sss.so       use_authtok
password        sufficient      pam_krb5.so             use_authtok forwardable
password        required        pam_unix.so             no_warn try_first_pass

我也試過

auth sufficient pam_krb5.so no_warn try_first_pass forwardable ccache=krb5cc_%u

有一個選項可以kinit在 .profile 中執行,但我試圖避免輸入密碼。

使用 pam_exec.so 是一個選項嗎?我可以做echo PASSWORD | kinit --password-file=STDIN哪些工作,所以我可以以某種方式呼叫它嗎?

參考

  1. 類似於這個人,但在 FreeBSD 10.3 Initialise Kerberos ticket on ssh login using PAM
  2. 人 pam_krb5.so https://www.freebsd.org/cgi/man.cgi?query=pam_krb5&sektion=8
  3. 類似,但無法解決無密碼問題使用 SSH 獲取 Kerberos 票證
  4. http://web.archive.org/web/20150315074946/http://howtovmlinux.com/articles/infrastructure-management/red-hat-idm/automate-kinit-kerberos-ticket-during-ssh-login.html

您的 ssh 客戶端 (PuTTY) 似乎沒有委託憑據。在不導致您重新輸入密碼的情況下,再多的 pam 詭計都無法解決這個問題,這寧願打敗這一點。

即使選中了可能的選項,我似乎也無法讓 putty 0.67 代表。您所指的接受行看起來像是從身份驗證的 sshd 登錄,而不是委託。預設情況下 sshd 不記錄委託。查看 SSH 數據包日誌,putty 0.67 它甚至似乎都沒有進行嘗試。

引用自:https://serverfault.com/questions/797752