bin/71147: sshd(8) will allow to log into a locked account

Ceri Davies ceri at submonkey.net
Mon Aug 30 09:20:26 PDT 2004


The following reply was made to PR bin/71147; it has been noted by GNATS.

From: Ceri Davies <ceri at submonkey.net>
To: Yar Tikhiy <yar at comp.chem.msu.su>
Cc: FreeBSD Gnats Submit <freebsd-gnats-submit at FreeBSD.org>
Subject: Re: bin/71147: sshd(8) will allow to log into a locked account
Date: Mon, 30 Aug 2004 17:16:02 +0100

 On Mon, Aug 30, 2004 at 02:10:30PM +0000, Yar Tikhiy wrote:
 > The following reply was made to PR bin/71147; it has been noted by GNATS.
 > 
 > From: Yar Tikhiy <yar at comp.chem.msu.su>
 > To: Gleb Smirnoff <glebius at freebsd.org>
 > Cc: FreeBSD-gnats-submit at freebsd.org, des at freebsd.org
 > Subject: Re: bin/71147: sshd(8) will allow to log into a locked account
 > Date: Mon, 30 Aug 2004 18:00:21 +0400
 > 
 >  On Mon, Aug 30, 2004 at 05:50:14PM +0400, Gleb Smirnoff wrote:
 >  > On Mon, Aug 30, 2004 at 04:52:54PM +0400, Yar Tikhiy wrote:
 >  > Y> 	In FreeBSD (and other BSDs,) the well-known way to lock out
 >  > Y> 	a user's account is setting the user's encrypted password to
 >  > Y> 	an asterisk character, `*', in master.passwd.  Arguably, one
 >  > Y> 	can also lock out a user by just _prefixing_ the password field
 >  > Y> 	value with `*'.  Anyway, sshd(8) will ignore either lock
 >  > Y> 	and allow the user to log in if he authenticates himself by
 >  > Y> 	means other than the Unix password, e.g., using his public key.
 >  > 
 >  > This is not a bug, it's a feature! Any ssh (not only Open) has the
 >  > same behavior on any unix operating system.
 >  
 >  Has it?  The sshd(8) manpage says a different thing!  And I'll be
 >  damned if the OpenSSH code doesn't check for OS-specific lock strings
 >  in the password hash field.
 >  
 >  > I'm utilizing this feature since I use pubkey authentification. 
 >  
 >  I'm afraid it's a dangerous feature to have.  Personally, I like
 >  the way described on the sshd(8) manpage: you set the password
 >  field exactly to the dedicated value to lock out a user completely,
 >  or you set it to a variant to just disable password-based auth for
 >  him.  In FreeBSD the dedicated value is `*' (or, perhaps, leading
 >  `*', as I observed in some communities), while any other character in
 >  front of a password hash or after it will effectively deny any password
 >  since our hashes are fixed-length, so they can't be matched by
 >  a string of a different length.
 
 This sounds like a reasonable workaround - this way everyone gets a way
 to do what they want.
 
 Ceri
 -- 
 It is not tinfoil, it is my new skin.  I am a robot.


More information about the freebsd-bugs mailing list