J'essaie de configurer une connexion sans mot de passe de machineA
à machineB
pour mon utilisateur david
qui 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 machineA
dans machineB
authorized_keys
la (/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 machineB
tant qu'utilisateur David sans demander de mot de passe.
david@machineA:~$ ssh david@machineB
Question:
Maintenant, j'ai créé un nouvel utilisateur sur machineA
et les machineB
deux en exécutant cette commande uniquement useradd golden
. Et maintenant, je veux SSH sans mot de passe de cet golden
utilisateur dans machineB
de 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.pub
clé /home/golden/.ssh/id_rsa.pub
de l'utilisateur doré de machineA
dans un machineB
authorized_keys
fichier /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.log
fichier, voici ce que je vois lorsque j'exécute cette commande de machineA ssh -vvv golden@machineB
pour 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
/etc/passwd
entrée pour l'utilisateur?Réponses:
Le problème est lié à la configuration de la pile PAM. Votre hôte est configuré avec
pam_access
et la configuration par défaut n'autorise pas l'accès externe / SSH pour le nouvel utilisateurgolden
, même si vos clés sont correctement configurées.Ajouter l'
golden
utilisateur dans/etc/security/access.conf
comme ci-dessous a résolu le problème.+:golden:ALL
Pour plus d'informations, lisez
man access.conf
ce qui explique chaque champ de ce fichier. Regardez la section des exemples pour comprendre l'ordre et la signification de LOCAL, ALL, etc.la source
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_config
et définirBien 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.
la source
Veuillez ajouter ce qui suit dans
/etc/security/access.conf
:la source
-:ALL:EXCEPT root
dans/etc/security/access.conf
, il a commencé à travailler.