使用 OpenSSH 和 Kerberos

若要將 OpenSSH 與 Kerberos 搭配使用,需要進行部分起始設定。

下列步驟提供為了使用 OpenSSH 和 Kerberos 必要的起始設定資訊。

  1. 在您的 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
  2. 而且,您必須新增下列 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
  3. 如果您的 KDC 使用 LDAP 作為儲存使用者資訊的登錄,請閱讀 LDAP 鑑別載入模組和 Kerberos 相關書籍。更進一步,請確認下列動作已執行:
    • KDC 正在執行 LDAP 用戶端。您可以 secldapclntd 指令啟動 LDAP 用戶端常駐程式。
    • LDAP 伺服器正在執行 slapd LDAP 伺服器常駐程式。
  4. 在 OpenSSH 伺服器上,編輯加入下列幾行文字於 /etc/ssh/sshd_config 檔中。
    KerberosAuthentication yes
    KerberosTicketCleanup yes
    GSSAPIAuthentication yes
    GSSAPICleanupCredentials yes
    UseDNS yes
    如果 UseDNS 設定為 Yes,ssh 伺服器會反向查閱主機,來尋找正在連接的用戶端名稱。當用主機鑑別身分,或最後一次登入資訊想顯示主機名稱而非 IP 位址時,就需要這樣設定。
    註: 反向查閱名稱時,有些 ssh 階段作業會延遲,因為無法連到 DNS 伺服器。如果發生這種情況,您可以將 UseDNS 設為 no 以省略 DNS 查閱。如果 /etc/ssh/sshd_config 檔中未明確設定 UseDNS,則預設值為 UseDNS yes
  5. 於 SSH 伺服器上,執行 startsrc -g ssh 指令已啟動 ssh 伺服器常駐程式。
  6. 於 SSH 用戶端機器,執行 kinit 指令以獲得起始認證 (TGT)。您可以執行 klist 指令驗證已接收 TGT。這顯示所有屬於您的認證。
  7. 執行 ssh username@servername 指令來連結伺服器。
  8. 若 Kerberos 已適當地配置來鑑別使用者,密碼提示將不會顯示,且使用者將自動登入至 SSH 伺服器。