In Linux (e.g., Ubuntu 18.04), how can I configure
sshd to allow logins using public keys for OS users that do not yet exist?
On server: /etc/ssh/sshd_config has
sudo mkdir -p /etc/ssh/keys
sudo tee /etc/ssh/keys/foo <<< "$(cat id_rsa.pub)"
sudo systemctl restart sshd
On client: ssh foo@server
In this scenario, the server does NOT have a
foo account in
/etc/passwd, but I'd like to create one automatically and then use
pam_mkhomedir to create its home directory -- all because the user can successfully authenticate using a public key.
@include common-auth(makes no difference since public keys reportedly bypass this anyway)
@include common-account(no difference)
/etc/pam.d/sshdadd, under #2,
account required pam_permit.so(no difference)
/etc/ssh/sshd_config LogLevel: DEBUG3shows
debug1: userauth-request for user foo Invalid user foo from 192.168.0.8 port 62083 debug1: PAM: initializing for "foo" debug1: userauth_pubkey: test whether pkalg/pkblob are acceptable for RSA SHA256:kdI+ALYK88R6zAcoPAIyXctjCLgEkGodgieusIOay0c [preauth] debug2: userauth_pubkey: disabled because of invalid user [preauth]