Recentemente, comecei a alugar espaço em um servidor remoto para poder trabalhar em um projeto. Eu descobri que uma maneira relativamente indolor de acessá-lo em uma máquina Windows é através do PuTTY. No entanto, há uma coisa que sempre me incomodou ao usá-lo: aparentemente não há motivo para caracteres aleatórios serem inseridos no cursor.
Na maioria das vezes, é apenas um til, mas raramente cospe o que parece ser uma sequência de escape ([[^ 8 ou algo semelhante). Isso só ocorre quando estou focado na janela, digitando ou a 6 metros do teclado. Se for deixado por tempo suficiente, cuspirá as tildes em intervalos aleatórios (a média é de cerca de 1 minuto).
Finalmente, esse comportamento parece inconsistente ao executar programas como o nano ou a interface mysql: no nano, em vez de inserir tildes, ele define marcas (ctrl- ^); no mysql, as linhas se tornarão não editáveis.
Minha pergunta é a seguinte: Alguém mais experimentou esse tipo de comportamento no PuTTY? E se sim, o que pode ser feito para evitar / corrigir esse comportamento?
Respostas:
Eu tive o mesmo problema com o PuTTY e descobri que estava sendo causado por um aplicativo que chamei "cafeína", que pressiona efetivamente a tecla F13 a cada minuto para impedir que a proteção de tela seja ativada (as políticas de grupo me impedem de alterar o tempo limite da proteção de tela em minha máquina). Desativar o aplicativo me resolveu o problema.
fonte
Se você preferir que o Putty e a cafeína funcionem, siga estas etapas:
F15
Ctrl+V
(Isso é necessário para obter o código especial da tecla. Por exemplo, tenteCtrl+V
seguido deF12
)F15
é^[[28~
, onde^[
é de escape). Stop Cafeína~
~/.inputrc
(crie um novo arquivo se ele não existir)"\e[28~":""
~
ao usar o terminal Putty com esse servidor linuxfonte
Eu achei a solução do shreyansp a mais satisfatória (mas não muito) :)
Aqui está minha tentativa de melhorar isso (é claro YMMV). Espero que isso possa ser útil para quem procura uma solução :)
Minha solução se comporta da seguinte maneira:
TL; DR: Minha solução é aplicada entre as etapas 2 e 3 (veja abaixo) com o
-key:0E
parâmetro cafeína:Saia da cafeína e reinicie-a com:
caffeine.exe 5 -key:0E
(para teste fácil)caffeine.exe 50 -key:0E
(para um protetor de tela obrigatório em 1 minuto)read
programa no host remoto e observe como nenhuma tecla é recebida a cada 5 ou 50 segundos.read
comCtrl+C
Shreyansp propôs uma solução em que uma correção seria aplicada entre as etapas 5 e 10 (veja abaixo).
O efeito colateral disso (na minha configuração) foi o de que, com cada pressionamento de tecla enviado da cafeína para o host remoto:
que eu normalmente desejaria, mas somente quando eu (o humano) estiver pressionando a tecla, mas não regularmente pela cafeína :)
'"\e[28~"'
para'""'
(chave em branco?) causou uma interrupção na interação da sessão remota por vários segundosPara testar facilmente o acima, saia do Caffeine e reinicie-o com um intervalo de 5 segundos e o Código da Chave Virtual 07:
caffeine.exe 5 -key:07
read
programa no host remoto e observe como as teclas são recebidas a cada 5 ou 50 segundos.read
comCtrl+C
O pressionamento de tecla 'pipeline', como eu o entendo:
$TERM=xterm
,vt100
,vt102
,vt220
, etc.) traduz a partir do 'protocolo de linha' em códigos de tecla.~/.inputrc
~/.bashrc
(com base no comando bind interno)screen
programa (que inclui um$TERM=screen
para a etapa 5. e volta novamente na etapa 6. a 10.)Nota: Quando chega à etapa 4., torna-se muito difícil controlar com precisão as diferentes camadas de 'traduções' / 'mapeamentos'. Eu recomendaria evitar isso, se puder.
Antecedentes:
usei
caffeine.exe -key:07
anos antes de ter que lidar com um pfsense 2.3.3-RELEASE-p1 (baseado no FreeBSD 10.3-RELEASE).Então,
caffeine.exe -key:07
foi recebido do outro lado como^[[28~
... que parece ser mapeado paraCtrl+^
(Set Mark) no Nano.Isso foi muito chato (imagine alguém pressionando e mantendo a tecla Shift pressionada enquanto você move o cursor de texto no Bloco de Notas).
Anteriormente, eu fiz inúmeras personalizações no Putty Configurações,
~/.tcshrc
,~/.inputrc
,~/.bashrc
,~/.nanorc
,~/.screenrc
para obter o que eu considero funcionalidade básica (Backspace
,Delete
,Home
,End
,PgUp
,PgDown
,Ctrl+Left
,Ctrl+Right
, Numpad0-9
, Numpad./*-+
) trabalhando de forma consistente entre bash / nano / tela.Depois que descobri esse
caffeine.exe -key:07
'bug', não quis refazer isso novamente :)Testado em:
Windows 8.1 Enterprise de 64 bits (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (baseado no FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Referências:
Cafeína:
Undefined
código que funciona para sua instalação)Readline / inputrc / bash / bashrc / bind (embutido):
Massa:
fonte
Isso realmente se parece com uma sequência de escape ou caractere de controle, o que pode explicar por que você não o vê em outros programas como o bloco de notas.
Não tenho certeza de quais teclas precisam ser pressionadas para obter essa saída, mas vou brincar um pouco e tentar descobrir. Você pode citar alguma outra sequência mostrada? O comportamento do mysql e nano pode ser apenas outra interpretação das seqüências de escape que parecem ter sido inseridas.
Finalmente, a questão é o que causa essas entradas principais. Você, por acaso, usa um laptop que, por exemplo, controla automaticamente a luz de fundo usando algum software proprietário? Eu já vi alguns softwares pré-instalados estranhos que emulavam as teclas pressionadas em vez de usar a API. Você pode usar algo como inputlog em si mesmo.
fonte
~
(e ouvir um beeb) quando na verdade algo\e[3~
é enviado.~
seria não indicam uma seqüência de escape.)Eu uso a opção -key: 07 na linha de comando para iniciar o caffiene. Parece parar o problema de Putty.
Basta colocar isso em um arquivo bat
caffeine.exe -key: 07
fonte
caffeine.exe -key:0E
(veja minha resposta abaixo). Parece funcionar bem com o Windows (8.1 64-bit) e Putty alegremente ignora :)Alguém nos fóruns da Cisco sugere alterar o parâmetro de velocidade do console para resolver esse problema.
http://www.dslreports.com/forum/r27090677-HELP-Cisco-1800-garbled-output-in-putty
Você definitivamente tentou todas as variações de velocidade do console no Putty, como mencionado em 1 ?
Nota: Se a taxa de transmissão estiver definida diferente da taxa padrão, caracteres ímpares serão vistos na CLI. Verifique a tabela1 para definir taxas de transmissão para diferentes valores de Confreg.
fonte
Eu também tive o mesmo problema e descobri que caffeine.exe era realmente o problema. No começo, eu pensei que não poderia ser causado pelo caffeine.exe porque eu estava usando isso por mais de 2 anos no meu laptop antigo. Tentei alterar o caffeine.exe -useshift, mas isso enviou ^ C. Encontrei outro programa, o Mouse Jiggler, que mantém a proteção de tela afastada, mas não envia mais seqüências de escape nas minhas sessões do Putty.
fonte
A melhor solução é definir as configurações na sua sessão de massa para que o Caffine não interfira nela.
No Putty, em Terminal Keyboard, escolha a opção SCO. Em Putty, em Terminal Bell, altere a ação para None (para desativar o sinal sonoro).
O Caffine ainda fará tudo e não incomodará sua sessão de massa. (Eu não uso as teclas Fn durante uma sessão de massa, então não sei o que acontece se você quiser usar as teclas Fn).
fonte
20/09/2017: Resolvida a injeção de carvão iniciando a cafeína com «caffeine.exe -useshift -noicon» no agendador de tarefas acionado no logon. Nenhum ícone, não há mais caracteres injetados em minhas sessões mintty / bash. Isso foi muito chato. Obrigado a todos por suas dicas.
fonte