Re: GSSAPI logins into OpenSSH combined with auto-obtaining AFS tokens

2007-07-11 Thread Rogier Krieger

On 7/10/07, Rogier Krieger [EMAIL PROTECTED] wrote:

If my clients (MIT KfW, SecureCRT) attempt GSSAPI authentication,
[...] OpenSSH does not obtain any AFS token, forcing me to run
afslog manually.


Or put such a command in /etc/ssh/sshrc, as hinted at in sshd(8). This
seems to work in that it provides me with tickets/tokens for both the
Kerberos and GSSAPI cases.

The above seems a bit of a workaround, but I can live with that. I'll
see if I can reproduce this on my 4.1 boxes. If so, I'll report back
to the OpenSSH list, since it strikes me as odd that a session would
do different things (whether or not to obtain an AFS token) based on
how the Krb5 TGT was obtained (password verification or transferred by
GSSAPI).

Cheers,

Rogier

--
If you don't know where you're going, any road will get you there.



GSSAPI logins into OpenSSH combined with auto-obtaining AFS tokens

2007-07-10 Thread Rogier Krieger

Dear list,

While fiddling around to move my home directories onto AFS, I notice a
bit of interesting behaviour. At a first glance, everything seems just
fine. When logging in through the Krb5 mechanism (as defined in
login.conf), OpenSSH nicely obtains an AFS token for me. Use case:
Windows SSH client entering a username/password upon connecting.

The following scenario, however, does not get me AFS tickets in my
shell: obtaining Krb5 credentials on the client and logging into
OpenSSH through GSSAPI. Although logging in seems to have nicely
transfered my Krb5 ticket, OpenSSH does not obtain an AFS token for
me. Running afslog manually fixes this, but I would greatly prefer to
have afslog run automatically.

Browsing the archives, I gather GSSAPI and Kerberos are treated
differently, but I cannot distill a solution from the results. Is
there any? I'm presently thinking of ways to get 'afslog' to run after
the GSSAPI login is completed. Would the 'approve' stanza in
login.conf and a small work for this purpose?

Reading the manual, I do get the feeling approve wasn't meant for this
sort of thing, but I figured to best ask here for some good advice.
Insight or a good cluebat are most appreciated.

I'm thinking along the lines of:
(in /etc/login.conf)
:approve=/usr/local/bin/auto-afslog:\
:approve-ftp=/usr/local/bin/auto-afslog:\


(for the script)
#!/bin/sh
AFSLOG=/usr/bin/afslog
${AFSLOG} -p ${HOME}

For a ${HOME} based in AFS filespace. If ${HOME} were to be outside
AFS file space, I wouldn't mind the login to fail, since that would be
a worthwhile incident to investigate.

Cheers,

Rogier

--
If you don't know where you're going, any road will get you there.



Re: GSSAPI logins into OpenSSH combined with auto-obtaining AFS tokens

2007-07-10 Thread Darren Tucker

Rogier Krieger wrote:

While fiddling around to move my home directories onto AFS, I notice a
bit of interesting behaviour. At a first glance, everything seems just
fine. When logging in through the Krb5 mechanism (as defined in
login.conf), OpenSSH nicely obtains an AFS token for me. Use case:
Windows SSH client entering a username/password upon connecting.

The following scenario, however, does not get me AFS tickets in my
shell: obtaining Krb5 credentials on the client and logging into
OpenSSH through GSSAPI. Although logging in seems to have nicely
transfered my Krb5 ticket, OpenSSH does not obtain an AFS token for
me. Running afslog manually fixes this, but I would greatly prefer to
have afslog run automatically.


Do you have KerberosGetAFSToken yes in sshd_config?

 KerberosGetAFSToken
  If AFS is active and the user has a Kerberos 5 TGT, attempt to
  acquire an AFS token before accessing the user's home directory.
  The default is ``no''.

--
Darren Tucker (dtucker at zip.com.au)
GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4  37C9 C982 80C7 8FF4 FA69
Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.



Re: GSSAPI logins into OpenSSH combined with auto-obtaining AFS tokens

2007-07-10 Thread Rogier Krieger

As someone kind made me realise in an off-list reply, I should have
included my sshd_config on the machine in question. I should further
note that it is a 3.9-stable machine (although I did not spot changes
relating to the OpenSSH behaviour regarding GSSAPI for the versions
included with 4.0/4.1).

The following parameters differ from the stock sshd_config (the
complete file is at the bottom of this message):
KerberosAuthentication yes
KerberosGetAFSToken yes
GSSAPIAuthentication yes
X11Forwarding yes

The above lines allow me to enter a username/password combination to
login (after which OpenSSH properly obtains the AFS tokens for me). As
I said, this bit works nicely.

If my clients (MIT KfW, SecureCRT) attempt GSSAPI authentication,
OpenSSH properly obtains the Krb5 TGT (with the same end time as the
one listed in my MIT KfW) and lets me login. In the GSSAPI case,
however, OpenSSH does not obtain any AFS token, forcing me to run
afslog manually.

Hence my original question: can/should I use login.conf(5)'s 'approve'
stanza and a special script to run the afslog for me to get my AFS
tokens in order for the GSSAPI case?

Cheers,

Rogier


# cat /etc/ssh/sshd_config
#   $OpenBSD: sshd_config,v 1.73 2005/12/06 22:38:28 reyk Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

#Port 22
#Protocol 2,1
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 768

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
PermitRootLogin without-password
#StrictModes yes
#MaxAuthTries 6

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
KerberosAuthentication yes
#KerberosOrLocalPasswd no
KerberosGetAFSToken yes

# GSSAPI options
GSSAPIAuthentication yes
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no

# no default banner path
#Banner /some/path

# override default of no subsystems
Subsystem   sftp/usr/libexec/sftp-server

--
If you don't know where you're going, any road will get you there.