Utilisation d'OpenSSH avec Kerberos

Une configuration initiale est requise pour utiliser OpenSSH avec Kerberos.

Les étapes suivantes fournissent des informations sur la configuration initiale requise pour utiliser OpenSSH avec Kerberos :

  1. Sur vos clients et serveurs OpenSSH, le fichier /etc/krb5.conf doit exister. Ce fichier indique à Kerberos quel KDC utiliser, quelle durée de vie attribuer à chaque ticket, etc. Voici un exemple de fichier 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. Vous devez également ajouter les services Kerberos suivants à chaque fichier /etc/services de la machine client :
    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 worker 
                                   #  propagation
    
  3. Si votre centre de distribution de clés utilise LDAP comme registre pour stocker les informations utilisateur, lisez LDAP authentication load moduleet les publications Kerberos . En outre, assurez-vous que les actions suivantes sont effectuées :
    • KDC exécute le client LDAP. Vous pouvez démarrer le démon client LDAP à l'aide de la commande secldapclntd.
    • Le serveur LDAP exécute le démon de serveur LDAP slapd.
  4. Sur le serveur OpenSSH, éditez le fichier /etc/ssh/sshd_config pour contenir les lignes :
    KerberosAuthentication yes
    KerberosTicketCleanup yes
    GSSAPIAuthentication yes
    GSSAPICleanupCredentials yes
    UseDNS yes
    Si UseDNS est défini sur Oui, le serveur ssh effectue une recherche d'hôte inverse pour trouver le nom du client de connexion. Cela est nécessaire lorsque l'authentification basée sur l'hôte est utilisée ou lorsque vous souhaitez que les informations de la dernière connexion affichent des noms d'hôte plutôt que des adresses IP.
    Remarque: Certaines sessions ssh se bloquent lors de l'exécution de recherches de noms inversées car les serveurs DNS sont inaccessibles. Si cela se produit, vous pouvez ignorer les recherches DNS en définissant UseDNS sur no. Si UseDNS n'est pas explicitement défini dans le fichier /etc/ssh/sshd_config, la valeur par défaut est UseDNS yes.
  5. Sur le serveur SSH, exécutez la commande startsrc -g ssh pour démarrer le démon de serveur ssh.
  6. Sur la machine client SSH, exécutez la commande kinit pour obtenir les données d'identification initiales (un ticket d'octroi d'autorisations). Vous pouvez vérifier que vous avez reçu un ticket d'octroi d'autorisations en exécutant la commande klist. Cela affiche toutes les données d'identification qui vous appartiennent.
  7. Connectez-vous au serveur en exécutant la commande ssh username@servername.
  8. Si Kerberos est correctement configuré pour authentifier l'utilisateur, une invite de mot de passe ne s'affiche pas et l'utilisateur sera automatiquement connecté au serveur SSH.