This was reproduced on both 7.7p1 and 7.9p1, while ssh-ing from a Windows machine to a Linux machine. For a simple repro I'm using the bash commands `echo ""` (should output a single newline) and `echo -n ""` (should output nothing and immediately exit successfully; I've also used /bin/true which is equivalent.) > ssh user@host -- echo "" Reliably returns right away as expected. > ssh user@host -tt -- echo "" Reliably returns right away as expected. > ssh user@host -- echo -n "" Seems to hang, but if you press a key it returns. > ssh user@host -tt -- echo -n "" Sometimes it works, sometimes it hangs. When it hangs it will be unresponsive to input, including ^C. You need to kill it in task manager. A wireshark trace shows that the server sent the TCP FIN packet, but the client is still holding open the connection. > ssh user@host -tt -v -- echo -n "" Turning on verbose output seems to make it work reliably. Not sure to what extent network latency affects this but my ping time is 11ms.
This could be related to the bug #2071 which is there for ages and has similar symptoms also on Linux platforms. You can try the patch I proposed there few years back if it solves also your problem.
What client are you using? Are you using the Microsoft ssh client or the Cygwin one?
I'm using the Microsoft client. I filed a bug with them: https://github.com/PowerShell/Win32-OpenSSH/issues/1338
closing resolved bugs as of 8.6p1 release