Win32-OpenSSH
Win32-OpenSSH copied to clipboard
Windows ARM64 prebuilt distribution
The current Win32-OpenSSH distribution is only prebuilt for x86 and x64. Windows on ARM is gaining in importance and it would be important to include a proper ARM64 prebuilt distribution, especially since ARM64 Azure VMs are now available in preview.
This should be a low hanging fruit as I have managed to make my own Win32 OpenSSH builds for Windows ARM64 by providing the missing prebuilt libraries not already available in the Microsoft prebuilt ones. The current project files already account for ARM64. Here is the list of prebuilt dependencies for ARM64, only LibreSSL is missing:
Surprisingly, libfido2 depends on LibreSSL/OpenSSL, so someone somewhere must already be building it, but it's not packaged in the prebuilt LibreSSL package currently used by PowerShell. All prebuilt dependencies are currently available as GitHub releases for each project fork under github.com/PowerShell. OpenSSH is currently built with a shared library (libcrypto.dll) from LibreSSL, while libfido2 appears to be built against a static version of the same library. If that's the case, then maybe switch either both to using a shared library, or statically link both OpenSSH and libfido2 against the same library.

@bagajjal @SteveL-MSFT as I've managed to rebuild all those dependencies on my side in preparation for my Win32 OpenSSH distribution, I can provide assistance if you have any questions.
We will consider publishing ARM32/ARM64 for next win32-openssh release. We already have the infrastructure in place to generate binaries for ARM32/ARM64, there is no additional work required.
It IS a Feature on Demand for win-arm64. Since MSI doesn't officially support ARM64 yet, it'd have to be a zip pkg.
Hi, @awakecoding, we are interested in building OpenSSH on Windows ARM64. Could you share the instructions to building OpenSSH and its dependencies for Windows ARM64?
We have our own Win32-OpenSSH fork + we build all of its dependencies from source, here are our conan build recipes: https://github.com/Devolutions/conan-public/tree/master/recipes
For Windows only, you can probably use a much simplified approach, as we also build the same dependencies on other platforms.
I have a branch with patches on top of OpenSSH, here's the build recipe that injects our build dependencies into it: https://github.com/Devolutions/conan-public/blob/master/recipes/openssh/conanfile.py
The upstream Win32-OpenSSH sources fetch prebuilt dependencies from Microsoft in zip files, some of which lack ARM64 libraries.
The ARM32/ARM64 binaries will be published as zip pkgs, starting with the next release.