PAM and OpenLDAP: Login requires always existence of SSH pubkey, why?

Michael Smith mksmith at adhost.com
Sun Dec 16 13:30:17 PST 2007


Hello:

On Dec 16, 2007, at 7:06 AM, O. Hartmann wrote:

> Hello.
>
> I use FreeBSD 7.0-BETA on servral boxes with different architectures  
> (i386/amd64). Users within our network have to autheticate against  
> an OpenLDAP Server via PAM. I have the annoying problem that every  
> user getting autenticated needs a public key and the passphrase set  
> in the ssh public key is the passphrase that authenticates the user  
> - not the passphrase/password set in the OpenLDAP DIT for that  
> specific user! My sshd_config looks quite common to the default  
> sshd_conf offered with the FreeBSD sources, exept three changes:
>
>
> =============
> # Change to yes to enable built-in password authentication.
> PasswordAuthentication yes
> #PermitEmptyPasswords no
>
> # Change to no to disable PAM authentication
> ChallengeResponseAuthentication yes
>
> # Kerberos options
> #KerberosAuthentication no
> #KerberosOrLocalPasswd yes
> #KerberosTicketCleanup yes
> #KerberosGetAFSToken no
>
> # GSSAPI options
> #GSSAPIAuthentication yes
> #GSSAPICleanupCredentials yes
>
> # Set this to 'no' to disable PAM authentication, account processing,
> # and session processing. If this is enabled, PAM authentication will
> # be allowed through the ChallengeResponseAuthentication and
> # PasswordAuthentication.  Depending on your PAM configuration,
> # PAM authentication via ChallengeResponseAuthentication may bypass
> # the setting of "PermitRootLogin without-password".
> # If you just want the PAM account and session checks to run without
> # PAM authentication, then enable this but set PasswordAuthentication
> # and ChallengeResponseAuthentication to 'no'.
> UsePAM yes
>
> =================
>
> Setting
> PasswordAuthentication no
> and
> ChallengeResponseAuthentication no
>
> to force PAM doing authetication, accounting and session via LDAP  
> results in the incapability of logging in for any user (error:  
> pubkey/password).
>
> In /etc/pam.d/sshd and system I have both in auth and session  
> pam_sshd.so enabled. Without that it doesn't matter what is  
> configured in sshd_conf, users never can login as LDAP would never  
> check passphrase.
>
> What is wrong? Why is PAM forcing ssh into doing authentication and  
> accounting and session management by default although I configured  
> PAM to do so?
>
> Can anybody help?

Are you telling SSH to use pam_ldap in the /etc/pam.d/sshd file?  As I  
understand it, you have told ssh to use PAM, which means it will honor  
what is in /etc/pam.d/sshd for its authentication.  If you want ldap,  
you'll need the pam_ldap.so library installed and then reference that  
in the file.  We use RADIUS and SAMBA so ours looks like:

auth            required        pam_nologin.so          no_warn
auth            sufficient      pam_radius.so
auth            sufficient /usr/local/lib/pam_winbind.so try_first_pass
auth            sufficient      pam_opie.so             no_warn  
no_fake_prompts
auth            requisite       pam_opieaccess.so       no_warn  
allow_local
auth            required        pam_unix.so             no_warn  
try_first_pass

Regards,

Mike




More information about the freebsd-questions mailing list