Accès refusé pour un utilisateur particulier par la configuration du compte PAM

10

J'essaie de configurer une connexion sans mot de passe de machineAà machineBpour mon utilisateur davidqui quitte déjà. Voici ce que j'ai fait pour générer les clés d'authentification:

david@machineA:~$ ssh-keygen -t rsa
........

david@machineB:~$ ssh-keygen -t rsa
........

Après cela, j'ai copié la id_rsa.pub (/home/david/.ssh/id_rsa.pub)clé de machineAdans machineB authorized_keysla (/home/david/.ssh/authorized_keys)clé de fichier .

Et puis je suis retourné à l'écran de connexion de machineA et j'ai exécuté la commande ci-dessous et cela a bien fonctionné sans aucun problème. J'ai donc pu me connecter en machineBtant qu'utilisateur David sans demander de mot de passe.

david@machineA:~$ ssh david@machineB

Question:

Maintenant, j'ai créé un nouvel utilisateur sur machineAet les machineBdeux en exécutant cette commande uniquement useradd golden. Et maintenant, je veux SSH sans mot de passe de cet goldenutilisateur dans machineBde machineA. J'ai fait exactement la même étape que ci-dessus mais cela ne fonctionne pas.

david@machineA:~$ sudo su - golden
golden@machineA:~$ ssh-keygen -t rsa
........

david@machineB:~$ sudo su - golden
golden@machineB:~$ ssh-keygen -t rsa
........

Et puis j'ai copié la id_rsa.pubclé /home/golden/.ssh/id_rsa.pubde l'utilisateur doré de machineAdans un machineB authorized_keysfichier /home/golden/.ssh/authorized_keys. Et quand j'essaye de ssh, ça me donne:

golden@machineA:~$ ssh golden@machineB
Connection closed by 23.14.23.10

Qu'est-ce qui ne va pas? Cela ne fonctionne pas uniquement pour l'utilisateur en or que j'ai créé manuellement via cette commande useradd. J'utilise Ubuntu 14.04. Y a-t-il des paramètres que je dois activer pour cet utilisateur manuel que j'ai créé?

Dans le machineB auth.logfichier, voici ce que je vois lorsque j'exécute cette commande de machineA ssh -vvv golden@machineBpour me connecter

Jan  3 17:56:59 machineB sshd[25664]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Jan  3 17:56:59 machineB sshd[25664]: pam_access(sshd:account): access denied for user `golden' from `machineA'
Jan  3 17:56:59 machineB sshd[25664]: pam_sss(sshd:account): Access denied for user golden: 10 (User not known to the underlying authentication module)
Jan  3 17:56:59 machineB sshd[25664]: fatal: Access denied for user golden by PAM account configuration [preauth]

Y a-t-il quelque chose qui me manque? Voici à quoi ressemble la structure de mon répertoire:

golden@machineA:~$ pwd
/home/golden
golden@machineA:~$ ls -lrtha
total 60K
-rw------- 1 golden golden  675 Nov 22 12:26 .profile
-rw------- 1 golden golden 3.6K Nov 22 12:26 .bashrc
-rw------- 1 golden golden  220 Nov 22 12:26 .bash_logout
drwxrwxr-x 2 golden golden 4.0K Nov 22 12:26 .parallel
drwxr-xr-x 2 golden golden 4.0K Nov 22 12:34 .vim
drwxr-xr-x 7 root     root     4.0K Dec 22 11:56 ..
-rw------- 1 golden golden  17K Jan  5 12:51 .viminfo
drwx------ 2 golden golden 4.0K Jan  5 12:51 .ssh
drwx------ 5 golden golden 4.0K Jan  5 12:51 .
-rw------- 1 golden golden 5.0K Jan  5 13:14 .bash_history


golden@machineB:~$ pwd
/home/golden
golden@machineB:~$ ls -lrtha
total 56K
-rw------- 1 golden golden  675 Dec 22 15:10 .profile
-rw------- 1 golden golden 3.6K Dec 22 15:10 .bashrc
-rw------- 1 golden golden  220 Dec 22 15:10 .bash_logout
drwxr-xr-x 7 root     root     4.0K Jan  4 16:43 ..
drwx------ 2 golden golden 4.0K Jan  5 12:51 .ssh
-rw------- 1 golden golden 9.9K Jan  5 12:59 .viminfo
drwx------ 6 golden golden 4.0K Jan  5 12:59 .
-rw------- 1 golden golden 4.6K Jan  5 13:10 .bash_history

Mise à jour:

Dans machineA:

cat /etc/passwd | grep golden
golden:x:1001:1001::/home/golden:/bin/bash

Dans machineB:

cat /etc/passwd | grep golden
golden:x:1001:1001::/home/golden:/bin/bash
user5447339
la source
Pourriez-vous montrer l' /etc/passwdentrée pour l'utilisateur?
pbm
mis à jour la question avec les détails. Une chose est tout d'abord que j'ai créé un utilisateur sans mot de passe, puis plus tard, j'ai créé le mot de passe pour cet utilisateur doré après un certain temps.
user5447339
Pam_sss donne un utilisateur inconnu. Vous devez vérifier la configuration de sssd sur votre système. Dans certains cas, sssd est configuré pour mettre en cache les informations d'identification, vous devrez donc peut-être invalider le cache / redémarrer sssd
VenkatC
@VenkatC Comment puis-je redémarrer sssd dans mon système? Ce sont tous des VM, donc je ne sais pas comment il a été configuré car nous avons obtenu ce système d'une autre équipe.
user5447339
sysyemctl restart sssd - devrait fonctionner sur un serveur basé sur systemd
VenkatC

Réponses:

13

Le problème est lié à la configuration de la pile PAM. Votre hôte est configuré avec pam_accesset la configuration par défaut n'autorise pas l'accès externe / SSH pour le nouvel utilisateur golden, même si vos clés sont correctement configurées.

Ajouter l' goldenutilisateur dans /etc/security/access.confcomme ci-dessous a résolu le problème.

+:golden:ALL

Pour plus d'informations, lisez man access.confce qui explique chaque champ de ce fichier. Regardez la section des exemples pour comprendre l'ordre et la signification de LOCAL, ALL, etc.

VenkatC
la source
Dans mon cas, j'ai dû être ajouté à un groupe qui a reçu l'autorisation d'accès access.conf.
Wolfgang
8

J'ai eu le même problème et aucune des options suggérées n'a fonctionné. Mais j'ai trouvé dans l'un des forums ( https://ubuntuforums.org/showthread.php?t=1960510 ) une "solution de contournement" qui fonctionnait parfaitement.

Modifier /etc/ssh/sshd_configet définir

UsePAM no

Bien que ce ne soit probablement pas la vraie solution, car quelque chose ne va vraiment pas avec ma machine (hier, elle fonctionnait bien!), Celle-ci fonctionne au moins.

Le parrain
la source
-3

Veuillez ajouter ce qui suit dans /etc/security/access.conf:

-:ALL:EXCEPT root
IRSHAD AHMED MOHAMMED
la source
3
Bienvenue sur Unix.SE! Pourriez-vous modifier votre réponse pour expliquer en quoi elle est meilleure que les réponses existantes?
Stephen Kitt
@StephenKitt J'ai essayé les deux réponses ci-dessus, mais elles n'ont pas fonctionné pour moi. Quand je l'ajoute -:ALL:EXCEPT rootdans /etc/security/access.conf, il a commencé à travailler.
IRSHAD AHMED MOHAMMED
Veuillez essayer de redémarrer winbindd et oddjobd. J'espère que cela vous aidera. Merci,
IRSHAD AHMED MOHAMMED
1
@IRSHADAHMEDMOHAMMED Pouvez-vous expliquer pourquoi cela a fonctionné et quelles autres conséquences liées à la sécurité cela aurait?
Kusalananda