Aktionen

Anmeldung per SSH-Key nicht möglich wenn der home-Ordner auf einem NFS-Share liegt

Aus znilwiki

ChangeLog:

  • 24.06.2024 erste Version

Vorwort

Das hat mich gerade über 3h Stunden gekostet.
Eine Software eines Kunden in einer Serverfarm benutzt passwortlose SSH-Anmeldungen um Prozesse auf diversen Servern unter einem bestimmten Benutzer zu starten.
Und der Hersteller möchte das auf allen Servern das identische Profil verwendet wird. Weshalb es auf dem Master-Knoten als NFS-Share frei gegeben ist und alle Worker-Knoten dieses in das Home-Verzeichnis des Benutzers gemountet haben (Benutzer hat überall die gleiche UID/GID).

Aber auf einem Knoten klappt das Passwortlose SSH-Login nicht, er wollte immer das Passwort.
Bis ich endlich mal die richtige Frage bei Google gestellt habe, die Lösung fand ich hier:

Es liegt an SELinux!


Prüfen ob es an SELinux liegt

Testet diesen Befehl:

getsebool use_nfs_home_dirs

Beispielausgabe 1 => Ihr habt das Problem gefunden:

use_nfs_home_dirs --> off

Bedeutet das SELinux aktiv ist und dieser Parameter die Ausführung verhindert.
Ist SELinux deaktiviert kommt die folgende Ausgabe:

getsebool:  SELinux is disabled

Dann liegt es vermutlich an falschen Veruechnis und Dateirechten, das Verzeichnis des Benutzers muss

chmod 700 .ssh

sein, die authorized_keys Datei darf nur für den Besitzer rw sein:

chmod 600 .ssh/authorized_keys



Es liegt an SELinux - Lösung 1

Setzt den Parameter das die Verwendung von NFS Shares erlaubt wird:

setsebool -P use_nfs_home_dirs 1

Das funktioniert dann unmittelbar und ohne Neustart!


Es liegt an SELinux - Lösung 2

Variante 2 ist das wir SELinux ganz deaktivieren:

nano /etc/selinux/config

und die Datei wie folgt ändern:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are$
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Speichern und den Server neu starten!


Kommentare

<comments />