
I find that many Linux users have a misconception about immutable distributions without knowing what it actually is.

FEDORA 23 WORKSTATION PROS AND CONS HOW TO
Now I just need to figure out how to plumb it through to WSL. The state of the art seems to be to use npiperelay with socat, but if you're already writing something that implements the Cygwin socket protocol you can just use npipe to talk to the shipped ssh-agent and then export your own socket interface.Īnd, amazingly, this all works? I've managed to hack together an SSH agent (using Go's SSH agent implementation) that can satisfy hardware backed queries itself, but forward things on to the Windows agent for compatibility with other tooling. So if you want to communicate between Cygwinish OpenSSH (as is shipped with git for Windows) and the SSH agent shipped with Windows, you need something that bridges between those. This isn't impossible, but ugh.īut going to all this trouble helps you avoid another problem! The Microsoft version of OpenSSH ships an SSH agent that doesn't use Unix sockets, but uses a named pipe instead. If you're not a Cygwin/msys app but you want to implement a socket they can communicate with, you need to implement this undocumented protocol yourself. That's kind of a big deal for compatibility purposes, so Cygwin worked around it. One is that until 2017, Windows had no native support for Unix sockets.

This is an astonishing artifact that allows you to build roughly unmodified POSIXish code on top of Windows, despite the terrible impedance mismatches inherent in this. Git for Windows is built on top of msys2, which in turn is built on top of Cygwin. In theory this doesn't sound like a hard problem, but in practice oh good heavens.

Work involves supporting Windows (there's a lot of specialised hardware design software that's only supported under Windows, so this isn't really avoidable), but also involves git, so I've been working on extending our support for hardware-backed SSH certificates to Windows and trying to glue that into git.
