Zugriff für einen bestimmten Benutzer durch PAM-Kontokonfiguration verweigert

10

Ich versuche, ein kennwortloses Login von machineAbis machineBfür meinen Benutzer einzurichten, daviddas bereits beendet wird. Folgendes habe ich getan, um die Authentifizierungsschlüssel zu generieren:

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

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

Danach habe ich den id_rsa.pub (/home/david/.ssh/id_rsa.pub)Schlüssel machineAin den machineB authorized_keysDateischlüssel kopiert (/home/david/.ssh/authorized_keys).

Und dann ging ich zurück zum Anmeldebildschirm von machineA und lief unter dem Befehl und es funktionierte ohne Probleme. So konnte ich mich machineBals David User anmelden, ohne nach einem Passwort zu fragen.

david@machineA:~$ ssh david@machineB

Frage:

Jetzt habe ich einen neuen Benutzer auf machineAund machineBbeide nur durch diesen Befehl ausführen useradd golden. Und jetzt möchte ich von diesem goldenBenutzer passwortlos in machineBvon ssh machineA. Ich habe genau den gleichen Schritt wie oben gemacht, aber es funktioniert nicht.

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

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

Und dann habe ich den id_rsa.pubSchlüssel /home/golden/.ssh/id_rsa.pubfür den goldenen Benutzer von machineAin die machineB authorized_keysDatei kopiert /home/golden/.ssh/authorized_keys. Und wenn ich versuche zu ssh, gibt es mir:

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

Was ist falsch? Es funktioniert nicht nur für Golden User, die ich manuell mit diesem Befehl erstellt habe useradd. Ich verwende Ubuntu 14.04. Gibt es Einstellungen, die ich für diesen von mir erstellten manuellen Benutzer aktivieren muss?

In der folgenden machineB auth.logDatei wird Folgendes angezeigt, wenn ich diesen Befehl von machineA ssh -vvv golden@machineBzur Anmeldung ausführe

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]

Fehlt mir etwas? Im Folgenden sieht meine Verzeichnisstruktur aus:

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

Aktualisieren:

In machineA:

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

In machineB:

cat /etc/passwd | grep golden
golden:x:1001:1001::/home/golden:/bin/bash
user5447339
quelle
Könnten Sie /etc/passwddem Benutzer einen Eintrag anzeigen?
pbm
hat die Frage mit den Details aktualisiert. Eine Sache ist, dass ich zuerst einen Benutzer ohne Passwort erstellt habe und später nach einiger Zeit das Passwort für diesen goldenen Benutzer erstellt habe.
user5447339
Pam_sss gibt Benutzer unbekannt. Sie müssen überprüfen, wie sssd auf Ihrem System konfiguriert ist. In einigen Fällen ist sssd so konfiguriert, dass Anmeldeinformationen zwischengespeichert werden, sodass Sie möglicherweise den Cache ungültig machen / sssd neu starten müssen
VenkatC
@VenkatC Wie kann ich sssd in meinem System neu starten? Dies sind alles VMs, daher bin ich mir nicht sicher, wie es konfiguriert wurde, da wir dieses System von einem anderen Team erhalten haben.
user5447339
sysyemctl restart sssd - sollte auf systemd-basierten Servern
funktionieren

Antworten:

13

Das Problem liegt bei der PAM-Stapelkonfiguration. Ihr Host ist mit konfiguriert pam_accessund die Standardkonfiguration erlaubt dem neuen Benutzer keinen externen / SSH-Zugriff golden, obwohl Ihre Schlüssel ordnungsgemäß eingerichtet sind.

Das Hinzufügen eines goldenBenutzers zu /etc/security/access.confden folgenden Optionen hat das Problem behoben.

+:golden:ALL

Weitere Informationen finden Sie in man access.confden einzelnen Feldern dieser Datei. Schauen Sie sich den Abschnitt mit den Beispielen an, um die Reihenfolge und Bedeutung von LOCAL, ALL usw. Zu verstehen

VenkatC
quelle
In meinem Fall musste ich zu einer Gruppe hinzugefügt werden, der die Zugriffsberechtigung access.conf erteilt wurde.
Wolfgang
8

Ich hatte das gleiche Problem und keine der vorgeschlagenen Optionen funktionierte. Aber ich habe in einem der Foren ( https://ubuntuforums.org/showthread.php?t=1960510 ) eine "Problemumgehung" gefunden, die perfekt funktioniert hat.

Bearbeiten /etc/ssh/sshd_configund einstellen

UsePAM no

Während es wahrscheinlich nicht die wirkliche Lösung ist, weil definitiv etwas mit meiner Maschine nicht stimmt (gestern hat es gut funktioniert!), Funktioniert diese zumindest.

Der Pate
quelle
-3

Bitte fügen Sie Folgendes hinzu /etc/security/access.conf:

-:ALL:EXCEPT root
IRSHAD AHMED MOHAMMED
quelle
3
Willkommen bei Unix.SE! Könnten Sie Ihre Antwort bearbeiten, um zu erklären, wie sie besser ist als die vorhandenen Antworten?
Stephen Kitt
@StephenKitt Ich habe beide oben genannten Antworten ausprobiert, aber sie haben bei mir nicht funktioniert. Als ich das hinzufügen -:ALL:EXCEPT rootin /etc/security/access.conf, begann es zu arbeiten.
IRSHAD AHMED MOHAMMED
Bitte versuchen Sie winbindd und oddjobd neu zu starten. Hoffe es wird helfen. Vielen Dank,
IRSHAD AHMED MOHAMMED
1
@IRSHADAHMEDMOHAMMED Können Sie erklären, warum es funktioniert hat und welche anderen sicherheitsrelevanten Konsequenzen dies haben würde?
Kusalananda