ssh: Include rsa-sha2-256 and rsa-sha2-512 in the list of hostkey types #6938
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.
User sees this error when trying to clone a repository using SSH:
failed to start SSH session: Unable to exchange encryption keys (-1x23)
This particular server only accepts these host key algorithms (output from ssh executable):
debug2: host key algorithms: rsa-sha2-256,rsa-sha2-512
"Normally" you might see others but what causes the error is the absence of "ssh-rsa" from the accepted list of host key algorithms.
Calling libssh2_session_method_pref with a list of methodsunfortunately isn't just preferring those methods, it means it accepts ONLY those methods. This pull request fixes that by adding rsa-sha2-256 and rsa-sha2-512 to the list.
This could be optimised by only calling libssh2_knownhost_checkp once for LIBSSH2_KNOWNHOST_KEY_SSHRSA and appending all of rsa-sha2-256, rsa-sha2-512. and ssh-rsa if mismatch is returned.