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