Ssh

無法通過 kerberos 從 Windows 10 機器向 ipa 客戶端進行身份驗證

  • February 2, 2017

我有一台加入域的 Windows 10 電腦嘗試通過 kerberos 對 ipa (4.4.0) 客戶端 (centos 7.2) 進行身份驗證,我可以使用使用者/密碼進行身份驗證,然後使用 kinit 進行身份驗證,但我似乎無法使用我機器上的 kerberos 票證進行身份驗證.

ipaclients 可以通過 kerberos 對 windows 伺服器 (winrm) 進行身份驗證。

佈局 example.org = 具有使用者的受信任域 example.com = 系統的根域 ad.example.com = 系統的子域 ipa.example.com = FreeIPA 的領域

來自 users@example.org 的所有域的身份驗證都有效,用於 IIS 的 kerberos Windows 身份驗證按預期工作,Winrm 使用 kerberos 在 Windows 和 linux 上工作。我還沒有使用 keytabs 和受信任的使用者測試 apache 401。

debug1: 下一個認證方法: gssapi-with-mic debug1: Miscellaneous failure (see text) cannot find realm of host WIN10HOSTNAME

debug1:其他故障(見正文)無法找到主機 WIN10HOSTNAME 的領域

debug2:我們沒有發送數據包,禁用方法

WIN10HOSTNAME = 主機名

我嘗試過 MIT Kerberos,還嘗試在 krb5.ini 文件(windows)中設置預設領域。我不太確定如何設置預設領域。

Windows 10 客戶端 (mingw64)

ssh -V

OpenSSH_7.1p2,OpenSSL 1.0.2h 2016 年 5 月 3 日

klist

Current LogonId is 0:0x3a258

Cached Tickets: (4)

1      Client: jevans @ EXAMPLE.ORG
       Server: krbtgt/AD.EXAMPLE.ORG @ EXAMPLE.COM
       KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)
       Ticket Flags 0x40a50000 -forwardable renewable pre_authent ok_as_delegate name_canonicalize
       Start Time: 1/26/2017 8:26:58 (local)
       End Time:   1/26/2017 18:25:47 (local)
       Renew Time: 1/26/2017 18:25:47 (local)
       Session Key Type: RSADSI RC4-HMAC(NT)
       Cache Flags: 0
       Kdc Called: DC01.example.com

1      Client: jevans @ EXAMPLE.ORG
       Server: krbtgt/EXAMPLE.COM @ EXAMPLE.ORG
       KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)
       Ticket Flags 0x40a50000 -forwardable renewable pre_authent ok_as_delegate name_canonicalize
       Start Time: 1/26/2017 8:26:58 (local)
       End Time:   1/26/2017 18:25:47 (local)
       Renew Time: 1/26/2017 18:25:47 (local)
       Session Key Type: RSADSI RC4-HMAC(NT)
       Cache Flags: 0
       Kdc Called: DC01.example.org

2      Client: jevans @ EXAMPLE.ORG
       Server: krbtgt/EXAMPLE.ORG @ EXAMPLE.ORG
       KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
       Ticket Flags 0x40e10000 -forwardable renewable initial pre_authent name_canonicalize
       Start Time: 1/26/2017 8:25:47 (local)
       End Time:   1/26/2017 18:25:47 (local)
       Renew Time: 1/26/2017 18:25:47 (local)
       Session Key Type: AES-256-CTS-HMAC-SHA1-96
       Cache Flags: 0x1 -PRIMARY
       Kdc Called: DC01.example.org

3      Client: jevans @ EXAMPLE.ORG
       Server: ldap/AD-DC01.AD.EXAMPLE.ORG/AD.EXAMPLE.ORG @ AD.EXAMPLE.ORG
       KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
       Ticket Flags 0x40a50000 -forwardable renewable pre_authent ok_as_delegate name_canonicalize
       Start Time: 1/26/2017 8:26:58 (local)
       End Time:   1/26/2017 18:25:47 (local)
       Renew Time: 1/26/2017 18:25:47 (local)
       Session Key Type: AES-256-CTS-HMAC-SHA1-96
       Cache Flags: 0
       Kdc Called: AD-DC01.ad.example.com

Linux端點 ktutils,然後read_kt /etc/krb5.keytab,然後list

slot KVNO Principal
---- ---- ---------------------------------------------------------------------
  1    1 host/linux-server@IPA.EXAMPLE.COM
  2    1 host/linux-server@IPA.EXAMPLE.COM
  3    1 host/linux-server@IPA.EXAMPLE.COM
  4    1 host/linux-server@IPA.EXAMPLE.COM
  5    1 host/linux-server@IPA.EXAMPLE.COM
  6    1 host/linux-server@IPA.EXAMPLE.COM
  7    1 host/linux-server@IPA.EXAMPLE.COM
  8    1 host/linux-server@IPA.EXAMPLE.COM
  9    1 host/linux-server@IPA.EXAMPLE.COM
 10    1 host/linux-server@IPA.EXAMPLE.COM
 11    1 host/linux-server@IPA.EXAMPLE.COM
 12    1 host/linux-server@IPA.EXAMPLE.COM

通過為cygwin****丟棄 mingw64使其工作。

mingw64 顯然是為極簡主義者設計的,並且缺少所需的 kerberos 包(在許多其他很棒的包中)

我不僅可以讓 cygwin 進行 Kerberos 身份驗證,還可以使用SSH 代理密鑰

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