16.04 ssh sai imediatamente

1

Eu tenho uma nova marca Dell com o Ubuntu 16.04.02 LTS pré-instalado. Eu fiz atualizações, configurei uma conta local e instalei o ssh.

Quando eu tento ssh na máquina ele pede minha senha, imprime "Welcome to Ubuntu", "último login: Thu ..." e depois "Connection closed".

Isso acontece em sistemas remotos ou localmente quando eu executo

ssh 127.0.0.1

O problema é apenas sessões de login, funciona se eu der um comando como

ssh 127.0.0.1 /bin/date

Eu posso até conseguir um shell que funcione minimamente, mas ele não está conectado a um tty, então muitas coisas não funcionam.

ssh 127.0.0.1 /bin/bash -i

A conta usa o bash. Os scripts de inicialização são os mesmos em / etc / skel, apenas .bashrc e .profile. Eu tentei movê-los de lado. Com base em uma resposta antiga, verifiquei que eles não têm uma saída neles.

Estou usando uma conta de usuário normal; não raiz.

    
por J Prescott 26.05.2017 / 04:16

1 resposta

0

Consegui isolar o problema adicionando instruções de depuração ao / etc / profile para rastrear a inicialização antecipada.

A Dell adicionou um arquivo /etc/profile.d/display-toggle-keybinding.sh para lidar com algumas combinações de teclas. Esse arquivo começa com:

if [ -z "$DISPLAY" ]; then  
   exit 0  
fi

Como as coisas em /etc/profile.d são originadas, elas são executadas no shell atual, e não em um subshell, portanto, quando elas saem, ele mata toda a sessão.

Uma vez que vi o problema, ele foi facilmente verificado ao tentar

ssh -X 127.0.0.1

que funcionou bem. O -X habilita o encaminhamento X11, o que significa que DISPLAY está definido. O problema só ocorre quando o DISPLAY não está definido.

Você pode corrigir o problema editando /etc/profile.d/display-toggle-keybinding.sh e alterando a "saída 0" para "retornar 0". "return" é uma versão um pouco menos poderosa de "exit", que só sai do arquivo sendo executado no momento.

O comentário no arquivo indica que é do pacote "dell-wmi-aio", portanto, pode ser exclusivo dos sistemas AIO. Estou usando um Optiplex 7450 AIO.

Descobri que a resposta a essa pergunta é muito útil para descrever como os vários tipos de shells do bash (interativo, login, gráfico, etc.) diferem e quais são suas sequências de inicialização:
Scripts em /etc/profile.d Sendo ignorado?

    
por J Prescott 01.06.2017 / 17:44