it-swarm.com.de

Authentifizierung abgelehnt: fehlerhafter Besitz oder Modi für die Datei /var/git/.ssh/authorized_keys

[~ # ~] edit [~ # ~]

Das hier offenbarte Problem ist behoben (über Dateimodi des .ssh Mappe.

Ein anderes Problem besteht jedoch weiterhin, sodass ich eine neue Frage erstelle:> Anmeldung mit SSH-RSA-Schlüssel nicht möglich

Ich kann für einen bestimmten Benutzer keine Verbindung mehr mit dem ssh-rsa-Schlüssel herstellen, aber es funktioniert immer noch für andere Benutzer.

Der Benutzer git ist wie folgt definiert:

# cat /etc/passwd | grep git
git:x:1002:1002:,,,:/var/git:/bin/bash

Sie haben also bemerkt, dass dies der Git-Benutzer ist, also ist sein Zuhause /var/git, es ist nicht in /home.

Jetzt fordere ssh mich immer zur Eingabe des Passworts auf:

$ ssh [email protected]
[email protected]'s password:

Ich habe die Protokolle überprüft:

# tail -n 1 /var/log/auth.log
[...] Authentication refused: bad ownership or modes for file /var/git/.ssh/authorized_keys

Damit authorized_keys als Eigentümer oder Modi Fehlkonfiguration. Ich verstehe nicht, weil hier die conf für diese Datei ist:

# ls -l /var/git/.ssh/ | grep auth
-rw-rw-r-- 1 git git 394 mai   22 17:39 authorized_keys

Und hier ist (falls ...) der Elternteil .ssh dir:

# ls -al /var/git/ | grep ssh
drwxrwxr-x  2 git  git  4096 mai   22 17:39 .ssh

Und der $HOME Verzeichnis :

# ls -l /var/ | grep git
drwxr-xr-x  7 git  git    4096 mai   27 10:49 git

Eigentümer sind also immer git, wie Eigentümergruppen. Und Dateien sind lesbar. Wo könnte der Trick sein?

22
Rémi B.

Das Problem ist die Tatsache, dass Datei- und Verzeichnisberechtigungen nicht den Anforderungen von StrictModes entsprechen, das in OpenSSH standardmäßig yes ist und nicht geändert werden sollte. Versuchen Sie, die Berechtigungen von authorized_keys Auf 0600 Und das Verzeichnis .ssh Auf 0700 Zu setzen.

# chmod 0700 .../.ssh/
# chmod 0600 .../.ssh/authorized_keys

Beachten Sie, dass sich ... Je nach Installation unterscheidet (z. B. in dieser Frage /var/git/, Für Benutzer jedoch /home/username/.

26
damienfrancois

Aus Gründen der Paranoia ist die .ssh Verzeichnis und authorized_keys darf nicht gruppenbeschreibbar sein. Ich denke, der Benutzer muss der einzige sein, der die ausdrückliche Kontrolle über seine Berechtigung hat. Ich glaube, ein Workaround dafür liegt bei ACL. Die andere Lösung ist StrictModes=no Einstellung in der Konfigurationsdatei von sshd. Aber es wäre zu gefährlich, dies für einen Benutzer zu tun.

P.S. Ihre ls -l /var | grep git wird präziser gemacht als ls -ld /var/git

5
Otheus

Das $HOME/.ssh Verzeichnismodus muss 700 sein und authorized_keyssollte nur für den Eigentümer lesbar sein, d. h. Modus 600:

chmod u=rwx,g=,o= /var/git/.ssh
chmod u=rw,g=,o= /var/git/.ssh/authorized_keys

Der private Schlüssel kann muss nur vom Eigentümer gelesen und geschrieben werden:

chmod u=rw,g=,o= /var/git/.ssh/id_?sa
4
user86969