Tecla de escape, teclas de seta, etc não funcionam no shell remoto para o servidor, mas funcionam no shell local do servidor

5

Note que estou executando esses sistemas no VMWare Player.

Referenciando isto Teclas de seta, guia completo não funciona , parece Eu deveria verificar se meu shell remoto está executando o bash. Minha sessão é bash de acordo com

echo $0
bash

No entanto, minhas teclas de seta e tecla de escape ainda imprimem o seguinte, respectivamente

^[[D^[[A^[[B^[[C^[

Por que os mapeamentos de teclas são tão complicados?

Nota: A versão do Bash e do SSH no servidor é um pouco antiga (veja os comentários). O cliente está atualizado.

ATUALIZAÇÃO: Eu entrei na máquina real e as chaves de escape, etc estão funcionando. É só que quando me conecto com o shell remoto eles não funcionam.

    
por Info5ek 17.09.2016 / 22:58

1 resposta

3

De sua pergunta anterior , sabemos que você está lidando com um sistema Ubuntu mais antigo e a versão 3.2 do bash.

Algumas das shells não vêm com suporte à biblioteca readline (veja minha pergunta relacionada sobre isso), que é o que faz com que os caracteres de controle apareçam na tela. Um bom exemplo disso é Korn shell e Dash. Eu não consegui encontrar se bash 3.2 vem ou não com o suporte à biblioteca readline. Vou pedir para ter certeza.

No entanto, com base na saída de locate readline.so que você forneceu nos comentários, parece que o seu bash realmente está perdendo essa biblioteca. Aqui está a saída do mesmo comando do meu sistema com o bash 4.3.

$ locate readline.so                                                           
/lib/x86_64-linux-gnu/libreadline.so.5
/lib/x86_64-linux-gnu/libreadline.so.5.2
/lib/x86_64-linux-gnu/libreadline.so.6
/lib/x86_64-linux-gnu/libreadline.so.6.3

Você pode tentar executar set enable-keypad on , mas duvido que isso tenha algum efeito sem a biblioteca readline presente.

A solução óbvia seria atualizar bash, mas desde que você precisa deste sistema para estudos de infosec, eu suponho que você pode querer mantê-lo como está.

Eu fiz uma pergunta relacionada em unix.stackexchange.com. Você pode verificar se bash usa o comando readline with nm , conforme mostrado na resposta de Thomas

    
por Sergiy Kolodyazhnyy 18.09.2016 / 02:08