web-dev-qa-db-fra.com

Authentification refusée: mauvaise propriété ou modes pour le fichier /var/git/.ssh/authorized_keys

[~ # ~] modifier [~ # ~]

Le problème tel qu'exposé ici est résolu (à propos des modes de fichiers du .ssh dossier.

Mais un autre problème persiste donc je crée une nouvelle question:> Impossible de se connecter avec la clé SSH-RSA

Je ne peux plus me connecter avec la clé ssh-rsa pour un utilisateur spécifique, mais cela fonctionne toujours pour d'autres utilisateurs.

L'utilisateur git défini comme suit:

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

Vous avez donc remarqué que c'est l'utilisateur git, donc sa maison est /var/git, ce n'est pas dans /home.

Maintenant, ssh me demande toujours un mot de passe:

$ ssh git@srv
git@srv's password:

J'ai vérifié les journaux:

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

Donc authorized_keys comme propriété ou modes de configuration manqués. Je ne comprends pas car voici la conf de ce fichier:

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

Et voici (au cas où ...) le parent .ssh dir:

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

Et le $HOME répertoire:

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

Les propriétaires sont donc toujours git, comme les groupes de propriétaires. Et les fichiers sont lisibles, alors où pourrait être l'astuce?

22
Rémi B.

Le problème est le fait que les autorisations de fichier et de répertoire ne répondent pas aux exigences de StrictModes, qui dans OpenSSH est yes par défaut et ne doit pas être modifié. Essayez de définir les autorisations de authorized_keys à 0600 et le .ssh répertoire vers 0700.

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

Notez que le ... variera en fonction de l'installation (par exemple, dans cette question, il s'agit de /var/git/ mais pour les utilisateurs, ce sera /home/username/.

26
damienfrancois

Pour des raisons de paranoïa, le .ssh répertoire et authorized_keys ne doit pas être inscriptible en groupe. Je suppose que la pensée est que l'utilisateur doit être le seul à avoir un contrôle explicite sur son autorisation. Je crois qu'une solution à ce problème réside avec ACL. L'autre solution est StrictModes=no paramètre dans le fichier de configuration de sshd. Mais il serait trop dangereux de le faire pour le bien d'un utilisateur.

P.S. votre ls -l /var | grep git est plus concis que ls -ld /var/git

5
Otheus

Le $HOME/.ssh mode répertoire doit être 700 et authorized_keysdevrait être lisible uniquement par le propriétaire, c'est-à-dire le mode 600:

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

Quant à la clé privée, elle doit être en lecture-écriture uniquement par le propriétaire:

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