Golang CertChecker hostname validation differs to OpenSSH

Peter Moody mindrot at hda3.com
Mon May 15 11:39:09 AEST 2017

I think I wrote the code in question for the golang library

my reading of the sshd manpage is that ssh is more permissive than it should be


  A hostname or address may optionally be enclosed within `[' and `]'
brackets then followed by `:' and a non-standard port number.

I actually noticed this last week and meant to email this list to ask
the openssh devs of the 'correct' behavior.

On Sun, May 14, 2017 at 5:24 PM, Adam Eijdenberg <adam at continusec.com> wrote:
> Hi all,
> Last week I noticed that the CertChecker in the Go implementation of
> x/crypto/ssh seems to be doing host principal validation incorrectly
> and filed the following bug:
> https://github.com/golang/go/issues/20273
> By default they are looking for a principal named "host:port" inside
> of the certificate presented by the server, instead of just looking
> for the host as I believe OpenSSH does.
> e.g. the following error is generated:
> ssh: handshake failed: ssh: principal "localhost:2022" not in the set
> of valid principals for given certificate: ["localhost"]
> Before I ping the bug again, it would be good to get a second opinion
> as to whether that behaviour is correct or not.
> Cheers, Adam
> _______________________________________________
> openssh-unix-dev mailing list
> openssh-unix-dev at mindrot.org
> https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev

More information about the openssh-unix-dev mailing list