My github ssh connection works, but looking at the openssh debug statements I'm not sure why.
Here is a part of my ssh -T [email protected] -v
debug1: Local version string SSH-2.0-OpenSSH_8.6
debug1: Remote protocol version 2.0, remote software version babeld-b9c2a189
debug1: compat_banner: no match: babeld-b9c2a189
debug1: Authenticating to github.com:22 as 'git'
I thought the compat_banner no march: babeld-b9c2a189
meant it wasn't in the comparability list and so the connections wouldn't work. But it does.
My question is why does this work?
CodePudding user response:
Like all programmers, implementers of the SSH protocol are human and sometimes make mistakes. For example, earlier versions of OpenSSH incorrectly truncated the shared secret in the [email protected]
algorithm when the first byte was zero, which caused connections to fail 1/256 of the time.
For this reason, OpenSSH contains a list of implementations with known bugs and if so, adjusts the algorithms it sends to avoid causing unexpected connection failures. The message “no match” just means that babeld, GitHub's SSH server, isn't in the list of known implementations, which is fine. OpenSSH will serve the full suite of algorithms without making adjustments as a result, since it doesn't have any known bugs. This is as it should be, since anyone should be able to implement an SSH server and have OpenSSH work with it just fine.