SSH suffers from the following shortcomings:
- configuration of logging facilities on the server is poor (syslog has to be used which increases complexity of simple problems for beginners in an unacceptable matter (not to speak of the overhead one has in comparison to alternative logging to a file))
- The logging output is unusable in most cases ("an error occured"-like logging message, e.g. ~ "authentication accepted; permission denied" are ridiculous (although very common), others confusing for no reason, consider "debug1: Offering RSA public key: /path/to/private-key-file"). Usually one should stop using a program and consider it unfit for production use if output like this is encountered!!
- The program requires very strict permissions on server and client side, the feedback on permission errors is practically zero, though! If you like comprehensive, intuitive programs don't google "ssh permissions", it'll just make you sad (or depending on your optimism confirm your POV on how important smart error messages are).
- (example) verbose output contains
Roaming not allowed by server-> What is roaming supposed to mean in the context of SSH? -> google query
site:www.openssh.org roamingreturns no results. How is anybody supposed to get starting with dealing with issues at all if they're not even in the programs docs?!
The shortcomings described above are established as state of the art and industry standard in the last 10 years (I've seen a post of a user having the same issues with permissions (and the associated error messages) written 12 years ago) and consequently cause trouble since then. Forum and Q&A posts generically suffer quality and or based on assumptions and vague tips rather than links to resources and specifications because it is simply not possible otherwise (see https://superuser.com/questions/326813/openssh-server-refuses-to-accept-key-authentication for an example: 6 answers, all imprecise and suffering from insufficient specifications and feedback).
Are there alternatives for SSH clients on Linux providing (if not all then at least some) hints to get debugging started (in comparison to
ssh -vvv)? It would be great to have a working/usable client which would sparse me the setup of another server, but I guess at the end it'll add up to exchanging both server and client.