ssh falha com “não foi possível encontrar o diretório inicial” (que existe e possui permissões) mesmo quando um terminal local registra o mesmo usuário em

2

Eu tenho um problema bizarro onde o ssh não encontra um diretório home para alguns usuários (que existe), mas o mesmo usuário pode logar diretamente na minha máquina através de um terminal local.

Detalhes a seguir:

Eu mantenho um servidor (server.domain.edu) onde meus alunos se inscrevem para enviar trabalhos de casa / etc. A máquina roda o Fedora Linux 22. Como configuração inicial, eu os coloco em ssh no servidor e mudo sua senha padrão.

Eu configurei as contas deles com:

useradd -s /bin/changepasswd -p 'openssl passwd -1 studentname' studentuname

changepasswd é um script de shell simples que imprime algumas instruções e chama passwd. As permissões para /bin/changepasswd são 755 e o proprietário: group é root: root

Agora, altero a propriedade e o grupo de / home/studentname (para evitar problemas com o sftp). ls -ld /home/studentname yields

drwxr-xr-x. 24 root teacher 4096 Jan 18 13:58 studentname

O mistério é que eu criei contas para cerca de uma dúzia de alunos com exatamente a mesma configuração. Para alguns deles, ele funciona como esperado (eles efetuam login e o sistema executa changepasswd e a sessão termina com o script). Para o resto, acontece o seguinte:

ssh [email protected]

Could not chdir to home directory /home/studentname: No such file or directory
/bin/changepasswd: No such file or directory
Connection to server.domain.edu closed.

Por outro lado, se o mesmo usuário que teve um problema com o ssh usar um terminal local no servidor (o login de texto local), tudo será executado como esperado sem as mensagens de erro acima. O problema ssh existe se eles usam clientes como o comando putty / ssh do mac ou até mesmo o ssh para o servidor a partir de um xterm no servidor (em vez de fazer login diretamente localmente).

arquivo sshd_config:

O

sshd_config tem uma coisa fora do normal - para cada nome de aluno que eu tenho:

Studentname do grupo de correspondências
ForceCommand / bin / changepasswd
ChrootDirectory / home / studentname
PermitTunnel no
AllowAgentForwarding no
X11Forwarding no
AllowTcpForwarding no

Novamente, observe que isso realmente funciona para alguns alunos, mas não para outros. O resto do arquivo sshd_config é o padrão.

O que poderia estar errado?

    
por Pr-San 19.01.2017 / 03:48

0 respostas