J'essaie de configurer une connexion sans mot de passe de machineA
à machineB
pour mon utilisateur david
qui se ferme 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é id_rsa.pub
(/home/david/.ssh/id_rsa.pub)
clé de machineA
dans machineB
authorized_keys
fichier (/home/david/.ssh/authorized_keys)
clé.
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 à machineB
en 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 machineB
en exécutant cette commande uniquement useradd golden
. Et maintenant, je veux passer sans mot de passe de cet utilisateur golden
à machineB
à partir 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é id_rsa.pub
clé /home/golden/.ssh/id_rsa.pub
pour l'utilisateur Golden de machineA
à 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 Golden 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 à partir de machineA ssh -vvv golden@machineB
ouvrir une session
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
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 utilisateur golden
, même si vos clés sont correctement configurées.
Ajout de golden
utilisateur dans /etc/security/access.conf
comme ci-dessous a résolu le problème.
+:golden:ALL
Pour plus d'informations, lisezman access.conf
qui explique chaque champ de ce fichier. Regardez la section des exemples pour comprendre l'ordre et la signification de LOCAL, ALL, etc.
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=196051 ) une "solution de contournement" qui fonctionnait parfaitement.
Éditer /etc/ssh/sshd_config
Et mettre
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.