Oliver Stöneberg created SSHD-600:
-------------------------------------
Summary: Actual authentication error is just a warning in the log
Key: SSHD-600
URL: https://issues.apache.org/jira/browse/SSHD-600
Project: MINA SSHD
Issue Type: Bug
Affects Versions: 1.0.0
Reporter: Oliver Stöneberg
Priority: Minor
I was getting the following exception on various systems when calling
auth().verify() on a ClientSession object.
org.apache.sshd.common.SshException: Session is closed -
at org.apache.sshd.client.session.ClientUserAuthService.preClose() in
ClientUserAuthService.java:225.
at org.apache.sshd.common.util.CloseableUtils$AbstractCloseable.close() in
CloseableUtils.java:346.
at org.apache.sshd.common.util.CloseableUtils$ParallelCloseable.doClose() in
CloseableUtils.java:235.
at org.apache.sshd.common.util.CloseableUtils$SimpleCloseable.close() in
CloseableUtils.java:202.
at
org.apache.sshd.common.util.CloseableUtils$SequentialCloseable$1.operationComplete()
in CloseableUtils.java:260.
at
org.apache.sshd.common.util.CloseableUtils$SequentialCloseable$1.operationComplete()
in CloseableUtils.java:254.
at org.apache.sshd.common.util.CloseableUtils$SequentialCloseable.doClose() in
CloseableUtils.java:270.
at org.apache.sshd.common.util.CloseableUtils$SimpleCloseable.close() in
CloseableUtils.java:202.
at
org.apache.sshd.common.util.CloseableUtils$AbstractInnerCloseable.doCloseImmediately()
in CloseableUtils.java:441.
at org.apache.sshd.common.session.AbstractSession.doCloseImmediately() in
AbstractSession.java:538.
at org.apache.sshd.common.util.CloseableUtils$AbstractCloseable.close() in
CloseableUtils.java:347.
at org.apache.sshd.common.session.AbstractSession.exceptionCaught() in
AbstractSession.java:525.
at org.apache.sshd.common.session.AbstractSessionIoHandler.exceptionCaught() in
AbstractSessionIoHandler.java:49.
at org.apache.sshd.common.io.nio2.Nio2Session.exceptionCaught() in
Nio2Session.java:137.
at org.apache.sshd.common.io.nio2.Nio2Session.access$500() in
Nio2Session.java:46.
at org.apache.sshd.common.io.nio2.Nio2Session$2.onFailed() in
Nio2Session.java:240.
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler$2.run() in
Nio2CompletionHandler.java:45.
at java.security.AccessController.doPrivileged() in AccessController.java:-2.
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.failed() in
Nio2CompletionHandler.java:42.
at org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted() in
Nio2Session.java:233.
at org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted() in
Nio2Session.java:212.
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run() in
Nio2CompletionHandler.java:34.
at java.security.AccessController.doPrivileged() in AccessController.java:-2.
at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed() in
Nio2CompletionHandler.java:31.
at sun.nio.ch.Invoker.invokeUnchecked() in Invoker.java:126.
at sun.nio.ch.Invoker$2.run() in Invoker.java:218.
at sun.nio.ch.AsynchronousChannelGroupImpl$1.run() in
AsynchronousChannelGroupImpl.java:112.
at java.util.concurrent.ThreadPoolExecutor.runWorker() in
ThreadPoolExecutor.java:1142.
at java.util.concurrent.ThreadPoolExecutor$Worker.run() in
ThreadPoolExecutor.java:617.
After enabling all log levels it turned out the actual error is a different one
and is only logged as a warning:
java.security.InvalidAlgorithmParameterException: Prime size must be multiple
of 64, and can only range from 512 to 2048 (inclusive)
at
com.sun.crypto.provider.DHKeyPairGenerator.initialize(DHKeyPairGenerator.java:120)
at
java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:674)
at java.security.KeyPairGenerator.initialize(KeyPairGenerator.java:411)
at org.apache.sshd.common.kex.DHG.getE(DHG.java:66)
at org.apache.sshd.client.kex.DHGEXClient.next(DHGEXClient.java:110)
at
org.apache.sshd.common.session.AbstractSession.doHandleMessage(AbstractSession.java:395)
at
org.apache.sshd.common.session.AbstractSession.handleMessage(AbstractSession.java:349)
at
org.apache.sshd.client.session.ClientSessionImpl.handleMessage(ClientSessionImpl.java:487)
at
org.apache.sshd.common.session.AbstractSession.decode(AbstractSession.java:848)
at
org.apache.sshd.common.session.AbstractSession.messageReceived(AbstractSession.java:331)
at
org.apache.sshd.common.session.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:57)
at
org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:220)
at
org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:212)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:34)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:31)
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
at sun.nio.ch.Invoker$2.run(Invoker.java:218)
at
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
This is definitely not just a warning and should be an error. Also I think it
should also be the actual exception you get from auth(). The "Session is
closed" error is not helpful at all.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)