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
Buildkit is unable to forward keys from Windows OpenSSH agent. The Microsoft fork of OpenSSH exposes its agent on a named pipe, which cannot be connected to using the net.Dial*() functions that work for UNIX sockets. Trying to pass the named pipe path \\.\pipe\openssh-ssh-agent as SSH socket yields (using 70deac1 on Windows 10 with OpenSSH_for_Windows_8.1p1):
> buildctl build --ssh default=\\.\pipe\openssh-ssh-agent
error: failed to open \\.\pipe\openssh-ssh-agent: open \\.\pipe\openssh-ssh-agent: All pipe instances are busy.
Note that this issue is separate from #914 where the SSH socket seems to be a cygwin or msys socket, rather than a named pipe.
Support for Windows OpenSSH requires:
Detection of named pipe paths on Windows.
Use of e.g. winio.DialPipe() to connect to the pipe.
(optional) Use of named pipe as default SSH agent path if available and not otherwise specified.
This would likely also resolve the downstream docker/buildx#409 issue regarding use of --ssh default on Windows 10.
I have implemented these changes in sschaap/buildkit@d74e356 for personal use. This makes Windows OpenSSH work seamlessly with buildkit --ssh default as well as docker buildx --ssh default (when rebuilt with modified buildkit).
Notably, this also works well with KeeAgent, which implements a compatible named pipe interface.
Is there interest in a PR for these changes? Any specific requirements other than sign-off?
The text was updated successfully, but these errors were encountered:
Buildkit is unable to forward keys from Windows OpenSSH agent. The Microsoft fork of OpenSSH exposes its agent on a named pipe, which cannot be connected to using the
net.Dial*()
functions that work for UNIX sockets. Trying to pass the named pipe path\\.\pipe\openssh-ssh-agent
as SSH socket yields (using 70deac1 on Windows 10 with OpenSSH_for_Windows_8.1p1):Note that this issue is separate from #914 where the SSH socket seems to be a cygwin or msys socket, rather than a named pipe.
Support for Windows OpenSSH requires:
winio.DialPipe()
to connect to the pipe.This would likely also resolve the downstream docker/buildx#409 issue regarding use of
--ssh default
on Windows 10.I have implemented these changes in sschaap/buildkit@d74e356 for personal use. This makes Windows OpenSSH work seamlessly with
buildkit --ssh default
as well asdocker buildx --ssh default
(when rebuilt with modified buildkit).Notably, this also works well with KeeAgent, which implements a compatible named pipe interface.
Is there interest in a PR for these changes? Any specific requirements other than sign-off?
The text was updated successfully, but these errors were encountered: