Kerberos tickets, SSH public key auth, AFS tokens

Jeff Blaine jblaine at stage-infinity.com
Wed Dec 16 19:29:57 EST 2009


On 12/16/2009 5:39 PM, Douglas E. Engert wrote:
> Jeff Blaine wrote:
>> Long ago, we evaluated the facilities within OS-provided
>> sshd for handling our Kerberos + OpenAFS authentication
>> needs. That is, things like the Kerberos* settings,
>> GetAFSToken or whatever it was called, etc.
>>
>> We found it to be an unusable mismatched moving target.
>>
>> We decided to do everything via PAM, with the exception
>> of ssh public key auth for those who choose to use it
>> and not get OpenAFS tokens automatically.
>>
>> It works great thanks to pam_krb5 and pam_afs_session
>> from Russ Alberry.
>>
>> Our problem now is, of course, that people are complaining
>> about the number of times they have to type a password.
>>
>> Can some of you hint to me what I should be researching
>> as a solution to this? Essentially we need a non-interactive
>> way to get OpenAFS tokens via krb5 creds, and I am pretty
>> clueless about such things. More specifically, this has
>> all come about from users complaining about CVS-via-SSH
>> requiring a password in order to get tokens.
>
> ssh could use "GSSAPIDelegateCredentials yes" to forward
> Krb5 tickets, and the sshd could then use pam_afs_session
> to get the token, even for CVS.
>
> But this won't work with ssh public keys. If its winCVS
> on Windows you are interested in, it too can support GSSAPI.

Thanks for the reply Doug

Well, public keys aren't a requirement.  I probably didn't
make that clear, as it's a long story, so I apologize.

Ignoring public keys, and after configuring a 'host'
service principal, then extracting it, this does in fact
work between two Solaris 10 boxes.  Cool.

Now I just need to figure out the pam_afs_session part.

With some sshd-gssapi service lines in /etc/pam.conf,
I'm stuck here (pam_krb5 is Russ'):

# these first 4 lines seem unnecessary for sshd-gssapi here, no?
sshd-gssapi   auth requisite     pam_authtok_get.so.1
sshd-gssapi   auth sufficient    pam_krb5RA.so try_first_pass 
forwardable minimum_uid=92 debug
sshd-gssapi   auth required      pam_unix_auth.so.1
sshd-gssapi   auth required      pam_unix_cred.so.1
sshd-gssapi   auth optional      pam_afs_session.so minimum_uid=92 debug
sshd-gssapi  session optional    pam_krb5RA.so minimum_uid=92 debug
sshd-gssapi  session optional    pam_afs_session.so minimum_uid=92 debug

sshd[20489]: [ID 800047 auth.info] Accepted gssapi-keyex for jblaine 
from 1xx.xx.10.14 port 60103 ssh2
sshd[20489]: [ID 366013 auth.debug] pam_krb5(sshd-gssapi): 
pam_sm_open_session: entry (0x0)
sshd[20489]: [ID 366013 auth.debug] pam_krb5(sshd-gssapi): no context 
found, creating one
sshd[20489]: [ID 366013 auth.debug] pam_krb5(sshd-gssapi): 
pam_sm_open_session: entry (0x0)
sshd[20489]: [ID 366013 auth.debug] pam_krb5(sshd-gssapi): no context 
found, creating one
sshd[20489]: [ID 366013 auth.debug] pam_krb5(sshd-gssapi): (user 
jblaine) unable to get PAM_KRB5CCNAME, assuming non-Kerberos login
sshd[20489]: [ID 366013 auth.debug] pam_krb5(sshd-gssapi): 
pam_sm_open_session: exit (ignore)
sshd[20489]: [ID 366013 auth.debug] pam_krb5(sshd-gssapi): (user 
jblaine) unable to get PAM_KRB5CCNAME, assuming non-Kerberos login
sshd[20489]: [ID 366013 auth.debug] pam_krb5(sshd-gssapi): 
pam_sm_open_session: exit (ignore)
sshd[20489]: [ID 237248 auth.debug] (pam_afs_session): 
pam_sm_open_session: entry (0x0)
sshd[20489]: [ID 237248 auth.debug] (pam_afs_session): skipping tokens, 
no Kerberos ticket cache



More information about the Kerberos mailing list