Doing a personal research project and I'm wondering: Why does SSH do its own mechanism negotiation rather than use SASL? At first I thought it might be to ensure confidentiality of the whole session, but looking at the wikipedia page it looks like that should be taken care of by the "transport" layer, much like exists in TLS+SASL.
My question is: Is there a technical reason why ssh can't just do a key exchange and then run SASL negotiation through the tunnel before setting up the channel(s)?