Ssh

沒有密碼的 Samba 4 和 SSH

  • March 2, 2014

我有一個關於 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解決問題。

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