ssh backspace não funciona até que eu execute manualmente TERM = xterm

4

Entendo que o backspace agora pode funcionar em uma sessão ssh se TERM estiver definido incorretamente. Mas, estranhamente, tenho um servidor em que TERM está configurado corretamente, mas o backspace não funciona até que eu defina manualmente TERM=xterm no shell (que deve ser redundante). Veja aqui:

~ ] ssh [email protected]
root 192.168.10.40 / # echo $0
-bash
root 192.168.10.40 / # echo $TERM
xterm-256color
root 192.168.10.40 / #     # backspace does not work :(
root 192.168.10.40 / # 
root 192.168.10.40 / # TERM=xterm-256color
root 192.168.10.40 / # # now backspace works!!
root 192.168.10.40 / # logout

Eu diria que cerca de 90% do tempo, o retrocesso não funciona até que eu execute TERM=xterm e, 10% do tempo, eu não preciso executar o comando TERM= porque o backspace já está funcionando. Eu comparei a saída de env para cada caso e eles são idênticos (além de SSH_CLIENT e SSH_CONNECTION em que somente a porta do lado do cliente foi alterada)

Alguma ideia do que pode causar esse comportamento ou que solução alternativa pode ser?

Resposta aos comentários

Estou usando OpenSSH_6.8p1, BoringSSL de https://android.googlesource.com/platform/external/openssh e estou executando GNU bash, version 4.3.42(1)-release (arm-android-eabi) de https://github.com/CyanogenMod/android_external_bash.git

stty -a não mostra diferenças antes e depois de definir XTERM . A saída é:

speed 38400 baud; rows 102; columns 319; line = 2;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

bind -p|egrep 'delete|rubout|kill' também não mostra diferenças antes e depois de definir XTERM . A saída é:

"\C-h": backward-delete-char
"\C-?": backward-delete-char
"\C-x\C-?": backward-kill-line
"\e\C-h": backward-kill-word
"\e\C-?": backward-kill-word
# copy-region-as-kill (not bound)
"\C-d": delete-char
"\e[3~": delete-char
# delete-char-or-list (not bound)
"\e\": delete-horizontal-space
# forward-backward-delete-char (not bound)
"\C-k": kill-line
# kill-region (not bound)
# kill-whole-line (not bound)
"\ed": kill-word
# shell-backward-kill-word (not bound)
# shell-kill-word (not bound)
# unix-filename-rubout (not bound)
"\C-w": unix-word-rubout
# vi-delete (not bound)
# vi-delete-to (not bound)
# vi-overstrike-delete (not bound)
# vi-rubout (not bound)

Curiosamente, se eu source my bashrc , meu backspace começa a funcionar novamente. Eu sei que o bashrc está sendo originado no login, porque esse é o único lugar onde eu configurei meu Ps1 value

    
por peskal 29.09.2016 / 20:37

0 respostas

Tags