Ao depurar em ssh usando ssh -vvv remotehost
para habilitar a saída máxima de depuração: para cada pressionamento de tecla enviado para a extremidade remota, você deve ver "debug3: Escreveu 48 bytes para um total de NNNN". Se você não vê-lo para Ctrl-P, isso é uma indicação de que o problema está no lado local (cliente) ao invés do controle remoto.
Você tem privilégios para controlar o daemon no lado remoto? As opções -D e -d do sshd (novamente, -ddd
para saída máxima de depuração) podem ajudá-lo a isolar o problema para aquela metade da conexão.
No lado local, há alguma ligação de tecla de terminal incomum? stty -a
ou stty -a | fgrep '^D'
deve mostrar se o Ctrl-P tinha uma ligação lá. (O que é obrigado a "parar"?)
Depois que o lado do cliente congela:
- Se você emitir um comando como
touch /tmp/foo
, isso afetará o servidor? (ou seja, é apenas mostrar que congelado, ou execução). - Você consegue emitir escutas do cliente ssh? Você pode digitar
<enter>~?
e obter uma lista de "Sequências de escape suportadas"? Você pode digitar<enter>~.
e terminar a conexão? Se sim, qualquer congelamento é definitivamente no servidor.
Você pode ter uma ideia melhor do que o servidor está fazendo com strace: strace -fo /tmp/strace.out sshd -ddd -D