lots and lots of info available from the ssh client by turning up the verbosity.
If you are able to run the sshd daemon on the server, you can have it listen on a different port (so the system daemon can still be running), and you can up the the debugging/verbosity level on the server process. Don't run it in the background.
You watch the debugging on both processes and usually determine the problem.