pam_ssh and default key file names [was: Re: svn commit: r304626 - head/lib/libpam/modules/pam_ssh]

Eric van Gyzen vangyzen at FreeBSD.org
Mon Aug 22 23:06:47 UTC 2016


On 08/22/2016 16:11, Bryan Drewery wrote:
> On 8/22/2016 1:01 PM, Eric van Gyzen wrote:
>> I had never looked at pam_ssh before.  Does it really ignore authorized_keys and
> 
> Yeah, that was the entire purpose!
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=15158

Ah, thanks for that research.

> For its original purpose I can understand using it, to login *locally*...

Yeah, pam_ssh makes sense for local logins, but even then I still find it
alarming that it looks at all default key file names.

If I change pam_ssh to only use authorized_keys, I would be adding the
assumption that users authenticate with the same keys over ssh as on the
console.  The current pam_ssh code allows different keys (viz. authorized_keys
versus id_foo).  This seems like a perfectly reasonable assumption.

I'd like to hear whether this would break anyone's deployment of pam_ssh.  If
so, I'd also like to hear a strong argument for such a use case.  I might have
to ask on, say, questions@ to get a wider audience.

> I am surprised to find this too.

Thanks for confirming my remaining sanity.  :)

> At least it is off-by-default:

Indeed.

> The manpage has this gem:
> "nullok              Normally, keys with no passphrase are ignored for
> authentication purposes.  If this option is set, keys with no passphrase
> will be taken into consideration, allowing the user to log in with a
> blank password."
> 
> Why would anyone ever use nullok and use the pam_ssh module? I don't
> know pam well but I'm sure there's another way to make a check always
> succeed without a password.  So supporting nullok in pam_ssh is just
> asking for an unknown security bug.

Yes, I also don't like nullok here.  There are use cases for a private key
without a password, but this is not one of them.

> Why is it even in the remote service files as an example when it is
> dangerous in those contexts?

Good point.  I'll remove it from the dangerous examples (unless you beat me to
it, since it's time for supper).  ;)

Eric


More information about the freebsd-security mailing list