it-swarm.com.de

SSH- und Home-Verzeichnis-Berechtigungen

Ich habe Stunden gebraucht, um dieses SSH-Problem mit einem meiner Klassenkonten auf den Servern meiner Schule zu lösen.

Ich konnte nicht in ein bestimmtes Klassenkonto ssh, ohne mein Passwort einzugeben, während die passwortlose Authentifizierung mit meinen anderen Klassenkonten funktionierte. Das Verzeichnis .ssh/und sein gesamter Inhalt hatten dieselben korrekten Berechtigungen wie die anderen Klassenkonten.

Es stellte sich heraus, dass das Problem darin bestand, dass die Berechtigungen für mein eigenes Home-Verzeichnis festgelegt wurden. Die kennwortlose Authentifizierung funktionierte nicht, wenn die Berechtigungen für mein HOME-Verzeichnis auf 770 festgelegt waren (unabhängig von den für .ssh/festgelegten Berechtigungen), funktionierte jedoch mit Berechtigungen, die auf 755 oder 700 festgelegt waren.

Weiß jemand, warum SSH das tut? Liegt es daran, dass die Berechtigungen für das Ausgangsverzeichnis zu zulässig sind? Warum weigert sich SSH, sich mit den öffentlichen/privaten Schlüsseln zu authentifizieren, wenn das Ausgangsverzeichnis zulässiger als 700 ist?

57
action_potato

Dies ist das Standardverhalten für SSH. Es schützt Benutzerschlüssel, indem rwx------ Für $HOME/.ssh Durchgesetzt wird und sichergestellt wird, dass nur der Eigentümer Schreibberechtigungen für $HOME Hat. Wenn ein anderer Benutzer als der jeweilige Eigentümer eine Schreibberechtigung für das Verzeichnis $HOME Hat, kann er die Berechtigungen für $HOME/.ssh In böswilliger Absicht ändern und möglicherweise die Benutzerschlüssel known_hosts Oder ähnliches entführen ähnlich. Zusammenfassend sind die folgenden Berechtigungen für $HOME Ausreichend, damit SSH funktioniert.

  • rwx------
  • rwxr-x---
  • rwxr-xr-x

SSH funktioniert nicht richtig und sendet Warnungen an die Protokollfunktionen, wenn im Verzeichnis g+w Eine Variation von o+w Oder $HOME Vorhanden ist. Der Administrator kann dieses Verhalten jedoch überschreiben, indem er StrictModes no In der Konfigurationsdatei sshd_config (Oder ähnlich) definiert. Es sollte jedoch klar sein, dass dies nicht empfohlen ist.

58
George M

77x in Ihrem Home-Verzeichnis bedeutet, dass jeder mit der richtigen GID Ihr .ssh-Verzeichnis verschieben und durch ein anderes ersetzen kann. Benutzer mit der richtigen GID haben Schreib-/Ausführungsberechtigungen für das Ausgangsverzeichnis und können daher Dateien/Verzeichnisse umbenennen/erstellen.

SSH ist sehr wählerisch, wenn es um Berechtigungen geht, und das sollte es auch.

31
jippie