bugzilla-daemon at bugzilla.mindrot.org
2017-Jul-11 21:12 UTC
[Bug 2743] New: ssh with -T hangs putty
https://bugzilla.mindrot.org/show_bug.cgi?id=2743 Bug ID: 2743 Summary: ssh with -T hangs putty Product: Portable OpenSSH Version: 7.5p1 Hardware: Other OS: Other Status: NEW Severity: major Priority: P5 Component: sshd Assignee: unassigned-bugs at mindrot.org Reporter: bagajjal at microsoft.com Created attachment 3014 --> https://bugzilla.mindrot.org/attachment.cgi?id=3014&action=edit putty logs Hi, I am trying to run a putty SSH session with -T option, the terminal gets stuck, doesn't honor any user keys and hangs. Steps- 1) open command prompt in windows 2) "C:\Program Files (x86)\PuTTY\putty.exe" -ssh user at ip -T 3) in the pop-up putty window, enable the logging and write to a file.. 4) Now if you press any key, the key is sent to the server but server didn't acknowledge anything back. I am attaching the putty logs that captures ssh packets and raw data packets. In the putty log, Line 335 shows "T" is been sent to SSH server but there is no incoming packet from the SSH server.. Please let me know if you need more information. -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Jul-11 23:43 UTC
[Bug 2743] ssh with -T hangs putty
https://bugzilla.mindrot.org/show_bug.cgi?id=2743 Darren Tucker <dtucker at zip.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dtucker at zip.com.au --- Comment #1 from Darren Tucker <dtucker at zip.com.au> --- I can reproduce this but I think PuTTY is at fault. Or at least there's a mismatch between what you expect and what PuTTY does. I built sshd with -DPACKET_DEBUG I can see the keystroke arrive at the server: debug1: input: packet len 32 debug1: partial packet: block 16, need 16, maclen 20, authlen 0, aadlen 0 read_poll enc/full: buffer 0x80ff8ec0 len = 36 0000: 9d 58 ac 75 69 f6 e3 01 c9 4a 10 f7 97 44 3c 69 .X.ui....J...D<i 0016: 95 f0 18 77 7e 83 39 58 df ec b1 5c 33 ea 53 24 ...w~.9X...\3.S$ 0032: 71 e1 02 b7 q... debug1: MAC #9 ok debug1: input: padlen 17 debug1: input: len before de-compress 10 read/plain[94]: buffer 0x80ff6848 len = 9 0000: 00 00 00 00 00 00 00 01 54 ........T So the packet arrives but what happens to it? I added "echo $$" to the shell startup and I see that, so the shell starts. I straced the shell after startup and I see: read(0, "i", 1) = 1 read(0, "d", 1) = 1 read(0, "\r", 1) = 1 read(0, and compared this to ssh -T which doesn't hang when I do the same thing: read(0, "i", 1) = 1 read(0, "d", 1) = 1 read(0, "\n", 1) = 1 [shell proceeds to run and return output from "id"] So, PuTTY isn't requesting a pty because you asked it not to, then it's sending your keystrokes to the server which is getting them. You're not seeing anything because you don't have a pty and there's no per-keystroke echo. You don't see any output when you hit enter because PuTTY sends a \r instead of the \n the shell is expecting, so as far as the shell is concerned you're still entering a command. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Jul-11 23:59 UTC
[Bug 2743] ssh with -T hangs putty
https://bugzilla.mindrot.org/show_bug.cgi?id=2743 --- Comment #2 from balu <bagajjal at microsoft.com> --- Thanks for the quick reply. In the putty logs, it doesn't show the incoming packet so not sure if the server is sending back the character to putty. FYI, I tried the win32-openssh client, it works with the windows ssh server (with -T option) but didn't work with the UNIX ssh server. So I am guessing the per-keystroke echo is working fine and something else is the issue. -- You are receiving this mail because: You are watching someone on the CC list of the bug. You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Jul-12 00:04 UTC
[Bug 2743] ssh with -T hangs putty
https://bugzilla.mindrot.org/show_bug.cgi?id=2743 --- Comment #3 from Darren Tucker <dtucker at zip.com.au> --- (In reply to balu from comment #2)> Thanks for the quick reply. > > In the putty logs, it doesn't show the incoming packet so not sure > if the server is sending back the character to putty.It isn't because it shouldn't.> FYI, I tried the win32-openssh client, it works with the windows ssh > server (with -T option) but didn't work with the UNIX ssh server. So > I am guessing the per-keystroke echo is working fine and something > else is the issue.I suspect that's due to the difference between Windows line endings (\r\n) and Unix line endings (\n). You could confirm that by strace'ing the shell on the Unix side similar to what I did. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Jul-12 00:50 UTC
[Bug 2743] ssh with -T hangs putty
https://bugzilla.mindrot.org/show_bug.cgi?id=2743 --- Comment #4 from balu <bagajjal at microsoft.com> --- (In reply to Darren Tucker from comment #3)> (In reply to balu from comment #2) > > Thanks for the quick reply. > > > > In the putty logs, it doesn't show the incoming packet so not sure > > if the server is sending back the character to putty. > > It isn't because it shouldn't. > > > FYI, I tried the win32-openssh client, it works with the windows ssh > > server (with -T option) but didn't work with the UNIX ssh server. So > > I am guessing the per-keystroke echo is working fine and something > > else is the issue. > > I suspect that's due to the difference between Windows line endings > (\r\n) and Unix line endings (\n). You could confirm that by > strace'ing the shell on the Unix side similar to what I did.I modified the win32-openssh client to send "\n" instead of "\r" so the command gets executed but the per-keystroke echo is not working. Example - when I type "dir\n".. At the client side I see the output of the dir but not the command "dir".. I tried the same thing on the unix ssh client, it does echo the actual command "dir". Is there anything we need to do to show the per-keystroke echo? -- You are receiving this mail because: You are watching someone on the CC list of the bug. You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Jul-12 00:58 UTC
[Bug 2743] ssh with -T hangs putty
https://bugzilla.mindrot.org/show_bug.cgi?id=2743 --- Comment #5 from Darren Tucker <dtucker at zip.com.au> --- (In reply to balu from comment #4) [...]> I modified the win32-openssh client to send "\n" instead of "\r" so > the command gets executed but the per-keystroke echo is not working.As I keep telling you: there is no per keystroke echo without a pty! Keystroke echo is a function of the tty layer (the pty in this case). I recommend reading the chapter on Terminal I/O in Richard Stevens' _Advanced Programming in the Unix Environment_. [..]> Is there anything we need to do to show the per-keystroke echo?Stop telling ssh to not request a pty. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Jul-27 03:54 UTC
[Bug 2743] ssh with -T hangs putty
https://bugzilla.mindrot.org/show_bug.cgi?id=2743 Darren Tucker <dtucker at zip.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #6 from Darren Tucker <dtucker at zip.com.au> --- It does not look like there's anything in the code that OpenSSH ships that is at fault here so I'm closing this bug. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
https://bugzilla.mindrot.org/show_bug.cgi?id=2743 Damien Miller <djm at mindrot.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #7 from Damien Miller <djm at mindrot.org> --- closing resolved bugs as of 8.6p1 release -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
Reasonably Related Threads
- [Bug 2736] New: Question-"PermitTTY no" is not working as expected
- [Bug 2424] New: Compatibility for iSSH and Ubuntu/Mint Putty
- [Bug 3152] New: #ifdef around memmem() is invalid.
- [Bug 3151] New: unittest files still use signal() instead of ssh_signal()
- Using Pageant & Putty under Wine -