permissões de diretório SSH e home

47

Demorou horas para resolver este problema de SSH com uma das minhas contas de turma nos servidores da minha escola.

Eu não pude acessar uma conta de classe em particular sem digitar minha senha, enquanto a autenticação sem senha funcionou com minhas outras contas de classe. O diretório .ssh / e todo o seu conteúdo tinham as mesmas permissões corretas que as outras contas de classe.

Acontece que o problema foi o conjunto de permissões no meu diretório pessoal. A autenticação sem senha não funcionou quando as permissões no meu diretório HOME foram definidas como 770 (independentemente das permissões definidas para .ssh /), mas funcionaram com permissões definidas para 755 ou 700.

Alguém sabe por que o SSH faz isso? É porque as permissões do diretório home são muito permissivas? Por que o SSH se recusa a autenticar com as chaves pública / privada quando o diretório inicial é definido como mais permissivo que o 700?

    
por action_potato 23.04.2012 / 22:23

2 respostas

47

Este é o comportamento padrão do SSH. Ele protege as chaves do usuário impondo rwx------ on $HOME/.ssh e garantindo que apenas o proprietário tenha permissões de gravação para $HOME . Se um usuário diferente do respectivo proprietário tiver permissão de gravação no diretório $HOME , ele poderá modificar as permissões maliciosamente em $HOME/.ssh , possivelmente sequestrando as chaves do usuário, known_hosts ou algo semelhante. Em resumo, as seguintes permissões em $HOME serão suficientes para o SSH funcionar.

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

O SSH não funcionará corretamente e enviará avisos para os recursos de registro se houver qualquer variação de g+w ou o+w no diretório $HOME . No entanto, o administrador pode substituir esse comportamento definindo StrictModes no no arquivo de configuração sshd_config (ou semelhante), embora deva ficar claro que isso não é recomendado .

    
por 23.04.2012 / 22:31
30

77x em seu diretório pessoal significa que todos com o GID correto podem mover seu diretório .ssh e substituí-lo por outro. Usuários com o GID correto possuem permissões de gravação / execução no diretório inicial e, portanto, podem renomear / criar arquivos / diretórios.

O SSH é muito exigente quando se trata de permissões, e deveria.

    
por 23.04.2012 / 22:50