Autenticação recusada: propriedade incorreta ou modos de arquivo /var/git/.ssh/authorized_keys [duplicate]

16

EDITAR

The issue as exposed here is solved (about files modes of the .ssh folder.

But an other issue persists so I create a new question : > Unable to login with SSH-RSA key

Eu não consigo mais me conectar à chave ssh-rsa para um usuário específico, mas ainda funciona para outros usuários.

O usuário git definido como segue:

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

Então você notou que este é o usuário do git, assim, sua casa é /var/git , não está em /home .

Agora, ssh sempre me pede senha:

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

Eu verifiquei os registros:

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

Portanto, authorized_keys como propriedade ou modos de configuração incorreta. Eu não entendo porque aqui está o conf para este arquivo:

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

E aqui está (no caso ...) o pai .ssh dir:

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

E o diretório $HOME :

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

Portanto, os proprietários são sempre git , como grupos de proprietários. E os arquivos são legíveis, então onde poderia estar o truque?

    
por Rémi B. 27.05.2015 / 11:50

3 respostas

20

O problema é o fato de que as permissões de arquivos são muito abertas. Tente definir o modo de authorized_keys para 600 e o .ssh para 700.

    
por 27.05.2015 / 11:57
4

Por razões de paranóia, o diretório .ssh e authorized_keys não devem ser graváveis em grupo. Eu acho que o pensamento é que o usuário deve ser o único com controle explícito sobre sua autorização. Eu acredito que uma solução para isso está na ACL. A outra solução é a configuração StrictModes=no no arquivo de configuração do sshd. Mas seria muito perigoso fazer isso por causa de um usuário.

P.S. seu ls -l /var | grep git é feito mais concisamente como ls -ld /var/git

    
por 27.05.2015 / 11:57
3

O modo de diretório $HOME/.ssh deve ser 700 e authorized_keys deve ser legível apenas pelo proprietário, ou seja, modo 600:

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

Quanto à chave privada, deve ser somente leitura / gravação pelo proprietário:

chmod u=rw,g=,o= /var/git/.ssh/id_?sa
    
por 27.05.2015 / 11:58