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
For its original purpose I can understand using it, to login *locally*...
I am surprised to find this too.
> allow authentication using any of the default key file names? After a quick
> read of the code, that certainly seems to be the case. Does anyone else find
> that alarming? Sure, it's in my ~/.ssh directory and has appropriate
> permissions, but that doesn't mean I want to use it for authentication to this
> machine (or any machine sharing this home directory). That's what
> authorized_keys is for. I might have created it only to authenticate from this
> machine to another one. I might have even given it an empty passphrase because
> that other machine is disposable and I don't really care about it.
At least it is off-by-default:
> # grep -r pam_ssh /etc/pam.d|grep auth
> /etc/pam.d/system:#auth sufficient pam_ssh.so no_warn try_first_pass
> /etc/pam.d/ftp:#auth sufficient pam_ssh.so no_warn try_first_pass
> /etc/pam.d/ftpd:#auth sufficient pam_ssh.so no_warn try_first_pass
> /etc/pam.d/telnetd:#auth sufficient pam_ssh.so no_warn try_first_pass
> /etc/pam.d/xdm:#auth sufficient pam_ssh.so no_warn try_first_pass
> /etc/pam.d/imap:#auth sufficient pam_ssh.so no_warn try_first_pass
> /etc/pam.d/other:#auth sufficient pam_ssh.so no_warn try_first_pass
> /etc/pam.d/sshd:#auth sufficient pam_ssh.so no_warn try_first_pass
> /etc/pam.d/pop3:#auth sufficient pam_ssh.so no_warn try_first_pass
The implications of uncommenting these are not explained in the files
though.
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.
I would really like to see nullok support removed from pam_ssh.
Why is it even in the remote service files as an example when it is
dangerous in those contexts?
I find the pam configuration files overly complex and error-prone to
begin with, but to discover that there's such a bombshell sitting there
is concerning.
--
Regards,
Bryan Drewery