go: x/crypto/ssh: rsa-sha2-256/rsa-sha2-512 tracking issue

OpenSSH migrated the ssh-rsa key type, which historically used the ssh-rsa signature algorithm based on SHA-1, to the new rsa-sha2-256 and rsa-sha2-512 signature algorithms.

x/crypto/ssh was not ready for the key type / signature algorithm mismatch, so it needs a few changes. Moreover, OpenSSH implemented a few mechanisms at the same time to enable the rollout, which we need to assess and expose.

This is a tracking issue for the effort in general. Here’s a list of not-duplicate related issues:

We’ll also need some tests against OpenSSH proper, like the crypto/tls recorded tests against OpenSSL, since https://golang.org/cl/220037 turned out to be a partial fix.

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Reactions: 23
  • Comments: 27 (15 by maintainers)

Commits related to this issue

Most upvoted comments

Server-side support for rsa-sha2-256/512 is now in master, and available as version v0.2.1-0.20221112162523-6fad3dfc1891.

@golang/release, can we get a v0.2.1 tag, since this fixes compatibility with a wide range of clients?

👋 I ran into this issue with my project: https://github.com/owenthereal/upterm/issues/93#issuecomment-1045387517. I’m wondering whether there is anything I could help.

I think this issue can be closed, now we should support everything related to rsa-sha-2 and since version 0.16.0 we have also fixed all known regressions.

Just for tracking purposes, this doesn’t fix the client-half regression mentioned in https://github.com/golang/go/issues/56342