0.1.44 but same code seems to be in 0.1.48.
Trying to track down why Session.connect throws "Auth fail" when it ought to have sufficient authentication. Reproducing in a debugger, "catch(Exception ee)" is entered, where 'ee' is an IOException "end of input stream". But I cannot be sure that the "live" exception not using a debugger is actually the same: running in a debugger might have caused an unrelated connection timeout.
You should not swallow the root exception. Before the 'loop' label, define a variable to hold 'ee' (maybe also 'e'?), and use that as the initCause(...) for new JSchException("Auth fail"). This would permit better debugging of connection problems.