You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description
When trying to connect with docker -H ssh://<host> to a Windows host running OpenSSH-Win32, if the login shell is PowerShell or CMD, the client cannot connect to the daemon.
However, if the login shell is bash (WSL), then the client can connect to the daemon.
Complete examples with the 2 scenarios
Steps to reproduce the issue:
Set registry key HKLM:\SOFTWARE\OpenSSH\DefaultShell to C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe
Try to connect > we get an error
docker -H ssh://localhost version
nunix@localhost's password:
nunix@localhost's password:
Client: Docker Engine - Community
Version: 18.09.0-ce-beta1
API version: 1.39
Go version: go1.10.4
Git commit: 78a6bdb
Built: Thu Sep 6 22:42:13 2018
OS/Arch: windows/amd64
Experimental: false
error during connect: Get http://docker/v1.39/version: command [ssh localhost -- docker system dial-stdio] has exited with exit status 1, please make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr="the raw stream connection does not implement halfCloser\n"
Set registry key HKLM:\SOFTWARE\OpenSSH\DefaultShell to C:\WINDOWS\System32\bash.exe
[Optional] if not running, start the npiperelay.exe from the WSL shell
sudo docker-relay &
Try to connect > we succeed
docker -H ssh://localhost version
nunix@localhost's password:
Client: Docker Engine - Community
Version: 18.09.0-ce-beta1
API version: 1.39
Go version: go1.10.4
Git commit: 78a6bdb
Built: Thu Sep 6 22:42:13 2018
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.0-ce-beta1
API version: 1.39 (minimum version 1.24)
Go version: go1.10.3
Git commit: 78a6bdb
Built: Thu Sep 6 22:57:45 2018
OS/Arch: windows/amd64
Experimental: true
Describe the results you received:
When using Powershell or CMD as the ssh login shell, it tries to connect twice (it's not a wrong password) and then it generates an error when trying to connect to the daemon.
Describe the results you expected:
While using Powershell or CMD as the ssh login shell, it should not request twice the password and directly connect to the daemon.
In fewer words, the same behavior as for the bash login shell
Additional information you deem important (e.g. issue happens only occasionally):
When trying to connect with the WSL client, there's an additional information
Output of docker version:
PS C:\WINDOWS\system32> docker version
Client: Docker Engine - Community
Version: 18.09.0-ce-beta1
API version: 1.39
Go version: go1.10.4
Git commit: 78a6bdb
Built: Thu Sep 6 22:42:13 2018
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.0-ce-beta1
API version: 1.39 (minimum version 1.24)
Go version: go1.10.3
Git commit: 78a6bdb
Built: Thu Sep 6 22:57:45 2018
OS/Arch: windows/amd64
Experimental: true
docker system dial-stdio failing on the SSH server side, because docker client on the SSH server got some unsupported connection stream to the Docker daemon.
Maybe DOCKER_HOST is set to different value when the shell is set to Powershell?
Description
When trying to connect with
docker -H ssh://<host>
to a Windows host running OpenSSH-Win32, if the login shell is PowerShell or CMD, the client cannot connect to the daemon.However, if the login shell is bash (WSL), then the client can connect to the daemon.
Complete examples with the 2 scenarios
Steps to reproduce the issue:
Set registry key
HKLM:\SOFTWARE\OpenSSH\DefaultShell
toC:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe
Try to connect > we get an error
Set registry key
HKLM:\SOFTWARE\OpenSSH\DefaultShell
toC:\WINDOWS\System32\bash.exe
[Optional] if not running, start the
npiperelay.exe
from the WSL shellDescribe the results you received:
When using Powershell or CMD as the ssh login shell, it tries to connect twice (it's not a wrong password) and then it generates an error when trying to connect to the daemon.
Describe the results you expected:
While using Powershell or CMD as the ssh login shell, it should not request twice the password and directly connect to the daemon.
In fewer words, the same behavior as for the bash login shell
Additional information you deem important (e.g. issue happens only occasionally):
When trying to connect with the WSL client, there's an additional information
Output of
docker version
:Output of
docker info
:Additional environment details (AWS, VirtualBox, physical, etc.):
Configuration on WSL side:
Configuration on Windows side:
The text was updated successfully, but these errors were encountered: