[~ # ~] 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?
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/
.
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
Le $HOME/.ssh
mode répertoire doit être 700 et authorized_keys
devrait ê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