Eu finalmente encontrei uma resposta no Teclado Linux de Shame da Anne Baretta ... parece que alterar os mapeamentos de teclas em xterm
/ rxvt
não é bom para telnet
.
Eu validei isso quando cheirei a conexão telnet. Primeiro eu cheirei a sessão de telnet e vi que Backspace enviou 0x7f
para o host. Em seguida, intencionalmente, quebrei Backspace em rxvt
usando stty erase $
(mapeando meu Backspace para o cifrão em rxvt
). Depois de fazer isso, tive que pressionar $ para retroceder em rxvt
, mas telnet
ainda enviou 0x7f
quando usei Backspace no host remoto.
SOLUÇÃO
Crie um script chamado kbdfix
(abaixo) e torne-o executável com 755
permissions; você precisará dos pacotes tclsh
e expect
carregados de seus arquivos de distribuição.
#!/usr/bin/expect
#Name this file as kbdfix and make it executable in your path
eval spawn -noecho $argv
interact {
7 {send "0"}
"3\[3~" {send "7"}
}
Agora para conectar-se aos hosts quebrados, eu digito kbdfix telnet 192.168.12.117 2006
e Backspace funciona.
Nota para qualquer um confuso em 2006 acima ... que é a porta TCP que o servidor de termos Cisco usa para a conexão serial com o console do dispositivo quebrado (nesse caso, um comutador Brocade FCX).
Se você está meramente telnetando para um dispositivo que não gosta de Backspace , você usaria kbdfix telnet <addr_of_the_broken_device>
. Eu também estou usando isso com ssh quando eu ssh para um switch Ethernet DLink DGS-3200 que tem problemas semelhantes; a sintaxe é kbdfix ssh 172.16.1.26
.