Sous Linux (par exemple, Ubuntu 18.04), comment puis-je configurer sshd
pour autoriser les connexions à l'aide de clés publiques pour les utilisateurs du système d'exploitation qui n'existent pas encore?
Par exemple:
-
Serveur: /etc/ssh/sshd_config a
AuthorizedKeysFile: /etc/ssh/keys/%u
-
sudo mkdir -p /etc/ssh/keys
-
sudo tee /etc/ssh/keys/foo <<< "$(cat id_rsa.pub)"
-
sudo systemctl restart sshd
-
Client: ssh foo@serveur
Dans ce scénario, le serveur N'A PAS de compte foo
dans /etc/passwd
, mais j'aimerais en créer un automatiquement puis utiliser pam_mkhomedir
pour créer son répertoire personnel -- tout cela car l'utilisateur peut réussir à s'authentifier en utilisant une clé publique.
Ma tentative:
-
/etc/pam.d/sshd
commenter@include common-auth
(sans effet car les clés publiques contournent apparemment ceci de toute façon) -
/etc/pam.d/sshd
commenter@include common-account
(pas de différence) -
/etc/pam.d/sshd
ajouter, sous #2,account required pam_permit.so
(pas de différence) -
/etc/ssh/sshd_config LogLevel: DEBUG3
montredebug1: 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]