PowerShell / Win32-OpenSSH

Win32 port of OpenSSH
7.2k stars 739 forks source link

BUG in ssh-shellhost.exe #2186

Open abakum opened 6 months ago

abakum commented 6 months ago

Prerequisites

Steps to reproduce

Server side------------------- C:\Program Files\OpenSSH>"C:\Program Files\OpenSSH\"sshd -ddd ... debug1: sshd version OpenSSH_for_Windows_9.4, LibreSSL 3.7.3 ... debug3: shell: "c:\\windows\\system32\\cmd.exe" debug3: shell_option: /c debug3: couldn't find CreatePseudoConsole() in kernel32.dll dll debug3: This windows OS doesn't support conpty debug3: pty commandline: "C:\\Program Files\\OpenSSH\\ssh-shellhost.exe" ---pty "c:\\windows\\system32\\cmd.exe"

Client side---------------------------------- mode con cols=80 lines=9999 ssh -vvv Konstantin.Abakumov@127.0.0.1 ... debug1: Local version string SSH-2.0-OpenSSH_for_Windows_9.4 debug1: Remote protocol version 2.0, remote software version OpenSSH_for_Windows_9.4 ... debug3: client_repledge: enter debug1: ENABLE_VIRTUAL_TERMINAL_INPUT is supported. Reading the VTSequence from console debug3: couldn't find CreatePseudoConsole() in kernel32.dll dll debug3: This windows OS doesn't support conpty debug1: ENABLE_VIRTUAL_TERMINAL_PROCESSING is supported. Console supports the ansi parsing ....

uf\konstantin.abakumov@WUFRS0661151 C:\Users\user>mode con

Состояние устройства CON:

Строки:                9999
Столбцы:               80
Скорость клавиатуры:   31
Задержка клавиатуры:   1
Кодовая страница:      866

------------------------------------ ssh-shellhost.exe work well on start-----------------------------------------------

------------------------------------I enlarge width of console-----------------------------------------------

Client side---------------------------------- debug2: client_check_window_change: changed debug2: channel 0: request window-change confirm 0 debug3: send packet: type 98 debug2: client_check_window_change: changed debug2: channel 0: request window-change confirm 0 debug3: send packet: type 98 debug2: client_check_window_change: changed debug2: channel 0: request window-change confirm 0 debug3: send packet: type 98 debug2: client_check_window_change: changed debug2: channel 0: request window-change confirm 0 debug3: send packet: type 98

Server side------------------- debug3: receive packet: type 98 debug1: server_input_channel_req: channel 0 request window-change reply 0 debug1: session_by_channel: session 0 channel 0 debug1: session_input_channel_req: session 0 req window-change debug3: receive packet: type 98 debug1: server_input_channel_req: channel 0 request window-change reply 0 debug1: session_by_channel: session 0 channel 0 debug1: session_input_channel_req: session 0 req window-change

Client side---------------------------------- uf\konstantin.abakumov@WUFRS0661151 C:\Users\user>mode con

Состояние устройства CON:

Строки:                9999
Столбцы:               80
Скорость клавиатуры:   31
Задержка клавиатуры:   1
Кодовая страница:      866

------------------------------------Nothing happend!!! BUG in ssh-shellhost.exe -----------------------------------------------

exit ------------------------------------End session----------------------------------------------- ------------------------------------New session with same console-----------------------------------------------

ssh Konstantin.Abakumov@127.0.0.1 uf\konstantin.abakumov@WUFRS0661151 C:\Users\user>mode con

Состояние устройства CON:

Строки:                9999
Столбцы:               102
Скорость клавиатуры:   31
Задержка клавиатуры:   1
Кодовая страница:      866    

------------------------------------ ssh-shellhost.exe work well on start-----------------------------------------------

Expected behavior

After enlarge width of console
Columns:               102

Actual behavior

Columns:               80

Error details

The width of the console on the server side does not change

Environment data

Name                           Value
----                           -----
PSVersion                      5.1.14393.5582
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14393.5582
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Version

OpenSSH_for_Windows_9.4, LibreSSL 3.7.3

Visuals

No response

abakum commented 6 months ago

Please uncoment https://github.com/PowerShell/openssh-portable/blob/4ee8dc64982b62cd520417556515383908091b76/contrib/win32/win32compat/shell-host.c#L804. To fix:

>2) when ssh client window is resized it clears everything and gives a blank screen.
abakum commented 6 months ago

For me ssh-shellhost.exe for amd64 from https://github.com/PowerShell/Win32-OpenSSH/issues/1222#issuecomment-409052375 works well. Were can I find ssh-shellhost.exe for 386?

maertendMSFT commented 6 months ago

@abakum what OS versions do you have running on the client and the server?

abakum commented 6 months ago

Microsoft Windows [Version 10.0.14393] on same PC server and client

tgauth commented 6 months ago

Starting with Windows 10 Build 18309, ConPTY should be supported so ssh-shellhost is not needed. Is updating the OS an option?

Also, all releases have 386 binaries within OpenSSH-Win32.zip

abakum commented 6 months ago

VScode used winpty

tgauth commented 6 months ago

Are you running SSH through the VSCode extension?

abakum commented 6 months ago

No, but VSCode does not offer to update the Windows version - it just uses what works \8^)