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

Yar Tikhiy yar at
Mon Aug 30 07:10:30 PDT 2004

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

From: Yar Tikhiy <yar at>
To: Gleb Smirnoff <glebius at>
Cc: FreeBSD-gnats-submit at, des at
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.

More information about the freebsd-bugs mailing list