ssh login não analisa .profile ou .bashrc corretamente e geralmente está sendo estranho

0
  • Primeiro de tudo, não carrega meu PS1. Apenas me avisa com um $
  • As teclas de seta, em vez de fazer o que devem fazer, são apenas coisas como: $ ^[[A

E isso torna muito inutilizável. Algumas coisas a considerar aqui:

  • Isso só acontece quando eu faço o login através do ssh, isso não acontece quando eu faço login diretamente no servidor.
  • Um dos usuários trabalha muito bem, mesmo com o ssh; e esse é o usuário que foi configurado durante a instalação do sistema operacional ( servidor ubuntu 14.04 ).
  • Quando eu su - otherUser de dentro desse usuário funciona bem, tudo funciona bem.

Aqui está o .bashrc caso você queira dar uma olhada nele (é o mesmo em todos os usuários, incluindo aquele que funciona corretamente):

function parse_git_branch () {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ ()/'
}

RED="\[3[0;31m\]"
YELLOW="\[3[0;33m\]"
GREEN="\[3[0;32m\]"
NO_COLOR="\[3[0m\]"
#PS1="[\u@\h \W]\$"
export PS1="[\u@\h $YELLOW\W$NO_COLOR]$GREEN\$(parse_git_branch)$NO_COLOR\$ "

Aqui está um log de saída para quando eu tento acessar o usuário corretamente funciona ssh -vvv ubuntu@server : link

Aqui está um log de saída para quando eu tento acessar o usuário que o não funciona corretamente ssh -vvv adam@server : link

    
por Adam Zahran 20.03.2016 / 13:29

1 resposta

1

Os sintomas que você descreve (somente prompt básico, teclas de seta não funcionam) são consistentes em ter /bin/sh como seu shell de login, em vez de /bin/bash conforme o esperado. /bin/sh é um pequeno shell projetado para executar scripts rapidamente, não para ser confortável para uso interativo.

Para verificar qual é o seu shell de login, execute

getent passwd $USER

Isso exibe uma lista de campos separados por dois pontos, o shell de login é o último.

Se o shell de login não for o desejado, execute chsh -s /bin/bash .

O motivo pelo qual você está recebendo o bash em um terminal pode ser que, em algum ponto da sua configuração, você esteja configurando a variável de ambiente SHELL para bash. Os emuladores de terminal normalmente executam o programa indicado por SHELL , voltando ao shell de login se SHELL não estiver definido.

    
por 20.03.2016 / 22:22

Tags