Frequentemente eu ssh na minha caixa em casa da escola, mas geralmente quando eu mudo de classe e meu computador é suspenso, o cano fica quebrado. No entanto, o ssh simplesmente trava - Ctrl+ c, Ctrl+ ze Ctrl+ dnão têm efeito.
É chato ter que reiniciar meu terminal e ainda mais chato ter que fechar e recriar uma nova janela de tela.
Então, minha pergunta, existe uma maneira fácil de fazer com que o ssh morra corretamente (ou seja, quando o tubo falhar "normalmente", ele sairá com uma mensagem sobre um tubo quebrado)? Ou tenho que descobrir qual é o PID e matá-lo manualmente?
screen -x
: PRespostas:
As chaves normais são encaminhadas durante a
ssh
sessão, portanto nenhuma delas funcionará. Em vez disso, use as seqüências de escape. Para matar a sessão atual hit posteriormente Enter ↵, ~, ..Mais destas sequências de escape podem ser listados com Enter ↵, ~, ?:
Você pode fechar a lista de seqüências de escape pressionando enter.
Observe que, ao pressionar ~~causa
ssh
para enviar o em~
vez de interceptá-lo, você pode endereçar Nssh
conexões aninhadas pressionando ~ N vezes. (Isso só se aplica a ~s que seguem diretamente um enter.) Ou seja, enter~~~~~.encerra umassh
sessão com 5 camadas de profundidade e mantém as outras 4 intactas.fonte
~
há uma tecla morta , a sequência de teclas éEnter
~
Space
.
.EscapeChar ~
em/etc/ssh/ssh_config
(ou~/.ssh/ssh_config
se você preferir).Enter
~
~
.
Como~
~
envia um literal~
através da sua sessão SSH, a segunda sessão SSH o receberá como um único til e os interpretará.
como parte da fuga. Para enviar para a quinta sessão ssh aninhada, basta usar 5 tildes na sua sequência de escape.Você também pode configurar o keep-alives no nível do aplicativo para o SSH para impedir que ele congele em problemas de conexão. My
~/.ssh/config
contém isso:Isso faz com que o cliente ssh envie keep-alives no nível do aplicativo a cada 15 segundos. Sempre que três deles falham consecutivamente (o padrão de
ServerAliveCountMax
), o cliente considera a conexão como interrompida e a fecha.Ao contrário da outra opção
TCPKeepAlive
, isso é verificado no canal criptografado e não é falsificado.Note-se que esses keep-alives também ajudam a manter as conexões inativas por muito tempo ativas , ou seja, impedem que você tenha sessões tcp semi-fechadas suspensas por horas intocadas.
Eu recomendo ativar esse recurso se você o encontrar regularmente, mas também deve saber sobre o pequeno risco à segurança que ele pode causar. Um ataque de texto sem formatação conhecido pode se tornar mais fácil se o invasor souber o intervalo e o conteúdo de uma conexão inativa. Esse pode ser o motivo pelo qual não está ativado por padrão.
fonte
%)
ServerAliveInterval
1 para que uma conexão perdida seja detectada imediatamente?Host
linha. Além disso, "cifras modernas, como o Advanced Encryption Standard, atualmente não são suscetíveis a ataques de texto sem formatação conhecidos". (a partir do link que você adicionou) ...Conforme observado na resposta do geekosaur, a sequência de escape
~.
encerrará a conexão.A lista completa de seqüências de escape e o que elas fazem podem ser exibidas digitando
~?
:fonte