使用 OpenSSH 和 Kerberos
若要將 OpenSSH 與 Kerberos 搭配使用,需要進行部分起始設定。
下列步驟提供為了使用 OpenSSH 和 Kerberos 必要的起始設定資訊。
- 在您的 OpenSSH 用戶端和伺服器上,/etc/krb5.conf 檔必須存在。此檔告知 Kerberos 要用哪一項 KDC、要給每一張通行證多長的使用期限等等。下列為一範例 krb5.conf
檔:
[libdefaults] ticket_lifetime = 600 default_realm = OPENSSH.AUSTIN.XYZ.COM default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc [realms] OPENSSH.AUSTIN.xyz.COM = { kdc = kerberos.austin.xyz.com:88 kdc = kerberos-1.austin.xyz.com:88 kdc = kerberos-2.austin.xyz.com:88 admin_server = kerberos.austin.xyz.com:749 default_domain = austin.xyz.com } [domain_realm] .austin.xyz.com = OPENSSH.AUSTIN.XYZ.COM kdc.austin.xyz.com = OPENSSH.AUSTIN.XYZ.COM - 而且,您必須新增下列 Kerberos 服務至每一個用戶端機器的
/etc/services 檔:
kerberos 88/udp kdc # Kerberos V5 KDC kerberos 88/tcp kdc # Kerberos V5 KDC kerberos-adm 749/tcp # Kerberos 5 admin/changepw kerberos-adm 749/udp # Kerberos 5 admin/changepw krb5_prop 754/tcp # Kerberos slave # propagation - 如果您的 KDC 使用 LDAP 作為儲存使用者資訊的登錄,請閱讀 LDAP 鑑別載入模組和 Kerberos 相關書籍。更進一步,請確認下列動作已執行:
- KDC 正在執行 LDAP 用戶端。您可以 secldapclntd 指令啟動 LDAP 用戶端常駐程式。
- LDAP 伺服器正在執行 slapd LDAP 伺服器常駐程式。
- 在 OpenSSH 伺服器上,編輯加入下列幾行文字於 /etc/ssh/sshd_config 檔中。
如果 UseDNS 設定為 Yes,ssh 伺服器會反向查閱主機,來尋找正在連接的用戶端名稱。當用主機鑑別身分,或最後一次登入資訊想顯示主機名稱而非 IP 位址時,就需要這樣設定。KerberosAuthentication yes KerberosTicketCleanup yes GSSAPIAuthentication yes GSSAPICleanupCredentials yes UseDNS yes註: 反向查閱名稱時,有些 ssh 階段作業會延遲,因為無法連到 DNS 伺服器。如果發生這種情況,您可以將 UseDNS 設為no以省略 DNS 查閱。如果 /etc/ssh/sshd_config 檔中未明確設定 UseDNS,則預設值為UseDNS yes。 - 於 SSH 伺服器上,執行 startsrc -g ssh 指令已啟動 ssh 伺服器常駐程式。
- 於 SSH 用戶端機器,執行 kinit 指令以獲得起始認證 (TGT)。您可以執行 klist 指令驗證已接收 TGT。這顯示所有屬於您的認證。
- 執行 ssh username@servername 指令來連結伺服器。
- 若 Kerberos 已適當地配置來鑑別使用者,密碼提示將不會顯示,且使用者將自動登入至 SSH 伺服器。