Fix Windows SSH authentication issues #876
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As was commented in issue #872 in comment, libssh2 on Windows uses WinCNG backend by default.
Its implementation is old and does not support modern key formats, making libgit2 (and by extension git2-rs bindings) unusable on Windows when one wishes to use SSH authentication, as only formats that won't cause infinite loop when trying to authenticate or fail are the ones that GitHub and others don't support anymore.
Utilizing openssl-on-win32 ssh2-rs feature allows for proper use of SSH authentication method on Windows builds without infinite loops and fails inside git2-rs.
This PR does just that - enables this feature.
I don't know if this is the best approach for this (I'm still a bit new to Rust), but doing this solved all SSH auth issues I had (and which probably cannot be solved otherwise on Windows OS without libssh2 updating WinCNG backend...)