On the impossibility to use escape sequences when the networks hangs
    Damien Miller 
    djm at mindrot.org
       
    Thu Oct 16 09:33:24 AEDT 2025
    
    
  
On Tue, 14 Oct 2025, Steffen Nurpmeso wrote:
> Steffen Nurpmeso wrote in
>  <20251014153948.s43LKday at steffen%sdaoden.eu>:
>  |Theo de Raadt wrote in
>  | <6240.1760455482 at cvs.openbsd.org>:
>  ...
>  ||I think you are confused.  <newline>~[letter] parsing is in the client
>  ||character input side, and the server or the link to the server has nothing
>  ||to do with it.
>  |
>  |But input is impossible.  It is stuck.  Not even ^C processing
>  |happens.  And, as i wrote, the code looks for newline (that much
>  |i grasped before posting), and that i cannot input.
> 
> i mean ok that after ^C .. maybe some special shell does *not*
> "restart line processing" if it gets that, so maybe ssh cannot
> assume anything after that ^C; still, i cannot input even that.
> 
> Look, i can easily reproduce it, though -vvv does not help:
> 
>   #?00.00 1/121|sdaoden:steffen$ debug3: obfuscate_keystroke_timing: stopping: chaff time expired (197 chaff packets sent)
>   debug3: obfuscate_keystroke_timing: starting: interval ~20ms
>   ^C
>   #?1300.00 1/121|sdaoden:steffen$ debug3: obfuscate_keystroke_timing: stopping: chaff time expired (76 chaff packets sent)
>   debug3: obfuscate_keystroke_timing: starting: interval ~20ms
> 
> ^ disable packet transmission.  And hit ^C several times in a row.
> 
>   debug3: obfuscate_keystroke_timing: stopping: chaff time expired (501 chaff packets sent)
> 
> ^ then reenable packet transmission after dunno maybe 10 seconds
> 
>   ^C
>   #?1300.00 1/121|sdaoden:steffen$ ^C
>   #?1300.00 1/121|sdaoden:steffen$ ^C
>   #?1300.00 1/121|sdaoden:steffen$ ^C
>   #?1300.00 1/121|sdaoden:steffe^C zcz^C
>   #?1300.00 1/121|sdaoden:steffen$ ^C
>   #?1300.00 1/121|sdaoden:steffen$ ^C
>   #?1300.00 1/121|sdaoden:steffen$ ^C
>   #?1300.00 1/121|sdaoden:steffen$
> 
> ^ all these were in the input queue, i did not type at all.
of course. ^C, ^Z etc are processed *by the server*. If there is no
connectivity to the server then they can't be processed.
~. is processed by the ssh client, so you should be able to use it
under most circumstances.
Use [enter]~. to terminate a stuck ssh connection.
-d
    
    
More information about the openssh-unix-dev
mailing list