-
-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Plugin freezes the editor on remote commands with SSH using Ed25519 key. #193
Comments
I hoped #191 would fix it, but I built it and it still freezes, not sure if the failure point is the same. |
It appears that the native windows crypto backend wincng doesn't seem to support elliptic curves at all. I have a branch where I enabled the openssl build for windows too, would be great if you could try it out. You can build it cross-compiling from linux unsing mingw, or natively on windows using MSVC, but you need a valid perl installation (see Strawberry Perl for example), and NASM (I also had to manually add to the installation dir as part of the PATH env variable, but YMMV). |
After building the branch, the issue is fixed if the credentials are correct, but if they're not (if one forgets to enter their passphrase), the editor still freezes in the same way. In the API docs for libgit2, the description for
As far as I can tell this callback is involved only with ssh auth. It seems gitlib2 expects this callback to return an error for incorrect credentials, which seems like a weird design decision to me. Even when authentication works, the blocking loop makes the editor freeze for around 4 seconds. |
After building from source, I traced it to the while loop in thirdparty\git2\libgit2\src\transports\ssh.c, on lines 670-694. After following with the debugger for a while, I reached a function that checks the key algorithm against an array of supported ones, and Ed25519 is not among them (thirdparty\ssh2\libssh2\src\userauth.c,
file_read_privatekey()
).Github recommends this algorithm, so other new users may use it. This should fail with a clear error instead of freezing the editor.
The text was updated successfully, but these errors were encountered: