沒有密碼的 Samba 4 和 SSH
我有一個關於 Samba 4 和 Kerberos 的問題。我有一個帶有 SSO 的功能性 SSH。但是現在當我安裝了 Samba 4 時它不起作用,而且似乎沒有人找到任何解決方案。我剛剛讀到,這真的很困難和復雜,或者在 Windows 上一切正常,但在 Linux 上我還沒有成功,等等。
問題是,Samba 4 以不同的方式實現 Kerberos。而且它似乎在某種程度上與 SSH 等 Linux 工具不兼容。當我
sshd
在調試模式下執行時,我看到它寫道:debug1: Unspecified GSS failure. Minor code may provide more information No key table entry found matching host/bolbro.barbucha.local@
但我無法將此類主體添加到 Samba 主體數據庫。(雖然它不存在,但
samba-tool spn add
寫道,它受到另一個使用者的影響。)我的文章可能聽起來很混亂,但我不得不說,我還不完全理解,這是怎麼回事,並且可能在我的文本中使用了一些錯誤的術語。您是否有任何使用 Samba 4 和 SSH 客戶端無需密碼工作的經驗?您曾經在 Linux 客戶端上的 Samba 4 和 SSO 上取得過成功嗎?
非常感謝任何提示或解釋。(我使用的是 Debian Squeeze,Bolbro 是機器,Samba 4 和 SSHD 執行。同樣的問題
ksu
也會影響。)
遺憾的是還沒有找到這個問題的解決方案,但現在我的電腦上也有類似的東西。為了讓 NSLCD 使用 GSSAPI 工作,我在伺服器端做了這些命令:
#create an user with a random password samba-tool user add --random-password ldap-connect #the password must not expire samba-tool user setexpiry --noexpiry ldap-connect #create a SPN (security principal name) samba-tool spn add nslcd/bolbro.barbucha.local ldap-connect #export key table of the user ldap-connect samba-tool domain exportkeytab krb5.nslcd.keytab --principal=ldap-connect
每個安全主體 (
nslcd
) 都分配給一台機器 (bolbro.barbucha.local
),並且使用此 SPN 的服務作為使用者 (ldap-connect
) 進行身份驗證。總是可以只有一個安全主體*<service>/<machine>*。您不能nslcd/bolbro.barbucha.local
再次創建並將其分配給其他使用者。安全主體host/bolbro.barbucha.local
已存在。我今天想,只導出使用者的密鑰表就足夠了,關鍵的 SPN 被分配到。我們拭目以待…
尤里卡!
我今天找到了解決方案(2014-03-02)。是的,確實如此。我做了這些步驟:
- 將客戶端加入域: , Samba 實用程序之一
net ads join -U administrator
在哪裡net
/etc/ssh/sshd_config
在伺服器端和/etc/ssh/ssh_config
客戶端的行內未註釋並用;GSSAPIAuthentication no
覆蓋 在客戶端同樣啟用no``yes``GSSAPIDelegateCredentials
- 在雙方執行命令
net ads keytab create
,以便將所需的密鑰導出到/etc/krb5.keytab
/etc/hosts
在伺服器端添加了完全限定的伺服器名稱我不知道為什麼,但是當我
sshd
在伺服器端以調試模式 (/usr/sbin/sshd -d
) 執行時,我看到一條消息,即沒有找到與 host/bolbro@ 匹配的鍵表條目。預期的伺服器名稱(klist -k /etc/krb5.keytab
在伺服器端列出)是bolbro.barbucha.local
. 附加伺服器的 IP 地址和完全限定名稱bolbro.barbucha.local
來/etc/hosts
解決問題。