What version of Go are you using (go version)?
$ go version
1.13.8
Version of x/crypto: 1d94cc7ab1c630336ab82ccb9c9cda72a875c382
Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
n/a
What did you do?
I tried to connect to an OpenSSH 8.2 server with the ssh-rsa host key algorithm disabled on the server. I also tried to run an x/crypto/ssh server and connect from an OpenSSH client with ssh-rsa disabled. Lastly, I tried to sign a host certificate with ssh.Certificate.SignCert with a SHA-2 based signature.
What did you expect to see?
I expected the RSA host key and certificate to validate successfully with the new SHA-2 based signatures introduced in RFC 8332. I also expected to be able to sign host certificates and have them automatically received a SHA-2 based signature.
OpenSSH has already deprecated ssh-rsa (i.e. SHA-1 based) signatures in host certificates in version 8.2 because of safety reasons. They can still be used by the host key algorithm must be manually specified.
What did you see instead?
I was unable to connect either as a server or a client if ssh-rsa wasn't enabled while using RSA host keys or host certificates. I was able to sign a certificate with the AlgorithmSigner wrapper approach (i.e. by forcefully overriding Sign) proposed by @stoggi in #36261, but it's not a great experience for users.
What version of Go are you using (
go version)?Version of
x/crypto:1d94cc7ab1c630336ab82ccb9c9cda72a875c382Does this issue reproduce with the latest release?
Yes.
What operating system and processor architecture are you using (
go env)?go envOutputWhat did you do?
I tried to connect to an OpenSSH 8.2 server with the
ssh-rsahost key algorithm disabled on the server. I also tried to run anx/crypto/sshserver and connect from an OpenSSH client withssh-rsadisabled. Lastly, I tried to sign a host certificate withssh.Certificate.SignCertwith a SHA-2 based signature.What did you expect to see?
I expected the RSA host key and certificate to validate successfully with the new SHA-2 based signatures introduced in RFC 8332. I also expected to be able to sign host certificates and have them automatically received a SHA-2 based signature.
OpenSSH has already deprecated
ssh-rsa(i.e. SHA-1 based) signatures in host certificates in version 8.2 because of safety reasons. They can still be used by the host key algorithm must be manually specified.What did you see instead?
I was unable to connect either as a server or a client if
ssh-rsawasn't enabled while using RSA host keys or host certificates. I was able to sign a certificate with theAlgorithmSignerwrapper approach (i.e. by forcefully overridingSign) proposed by @stoggi in #36261, but it's not a great experience for users.