O problema provavelmente não é o cliente, mas o servidor.
PuTTY é um emulador de terminal Xterm / VT100. O terminal VT100 seria anexado a uma extremidade de um fluxo serial simples de 8 bits, e enviaria "seqüências de escape" especiais para teclas de função - por exemplo, ESC [ A
para a seta Up - e isso persistiu no Linux e no BSD de hoje. A edição de linha além do básico ← Backspace é manipulada pelos próprios programas, lendo e analisando essas seqüências de escape, e enviando mais delas para mover o cursor e exibir o texto. Tanto o Telnet quanto o SSH podem ser considerados portadores simples para o fluxo do terminal, exatamente como uma linha serial.
O que causa seus problemas é que os consoles do Windows não funcionam dessa maneira - em vez de ser um fluxo, o console é um buffer de tela. O subsistema do console tem edição de linha (e histórico básico) embutida, e o cmd.exe simplesmente usa essa funcionalidade com ReadConsole () cmd.exe é conectada a um canal, em vez de um console, esse sistema é ignorado e tudo é inserido diretamente na entrada corrente. Como cmd.exe não foi escrito para lidar com sequências VT100, ele não dá nenhum tratamento especial a eles, e ESC
simplesmente se torna parte do comando inserido.
Isso significa que os servidores SSH do Windows, bem como o servidor Telnet interno do Windows, precisam traduzir as seqüências do VT100 para os eventos do console e formatam a saída do console para as seqüências do VT100. Nem todos os servidores SSH realmente se importam em fazer isso. Certifique-se de que a extremidade remota não alterou o software do servidor SSH dos usuários. Se as chaves costumavam funcionar com a configuração same agora, tente redefinir o PuTTY para suas configurações padrão com putty -cleanup
ou excluindo a ramificação do registro manualmente.
O Windows PowerShell é fornecido com o suporte remoto , que usa recursos locais edição de linha e só envia linhas completas para o final remoto, evitando este problema. Para cmd.exe , isso pode ser obtido com psexec (embora o SMB a conexão não é criptografada por padrão), ou você provavelmente poderia iniciar cmd dentro de uma sessão remota do PowerShell.