> I have a login that I want to be able to access only via ssh with a
> certificate (in ~/.ssh/authorized_keys).
>
>
> So I have disabled the password ('*') but left a valid shell. Something
> like this in /etc/master.passwd:
>
> mylogin:*:1001:1001::0:0:My login:/home/mylogin:/bin/sh
>
>
> But in this way every day a receive a mail with the following:
>
> Checking the /etc/master.passwd file:
> Login mylogin is off but still has a valid shell and alternate access
> files in home directory are still readable.
>
>
> What is the supposed way to define an account without a password but
> with a valid shell (to access via ssh with a certificate)?
>
> Thanks.
>
Set the password field to 13 asterisks to indicate that only the
password is disabled, not the account:
mylogin:*************:1001:1001::0:0:My login:/home/mylogin:/bin/sh
This is documented in passwd(5), search for "13".
Future advice: This would've been easy to figure out if you searched
for that error message in /usr/libexec/security.
This is the code that checks if logins are disabled:
if ($pwd ne '' &&
$pwd ne 'skey' &&
length $pwd != 13 &&
$pwd !~ /^\$[0-9a-f]+\$/ &&
($shell eq '' || $shell =~ /sh$/)) {
So there are a number of ways to fool it.