liugongjian opened a new issue, #506: URL: https://github.com/apache/mina-sshd/issues/506
### Version 2.12.1 ### Bug description Those code below is my demo code. It works fine on local enviroment. But it does not work after deployed to remote server. The log output is shown below. But oddly, after restart the server, it works with no exceptions. And a period later(ussally after when another user logged in and try to upload file to sftp with this), it does not work with error log outputted again. Enviroment: jdk 1.8 resin 4.0.66 Ubuntu 24.04 LTS ``` public void connect() throws IOException { // Security.removeProvider("BC"); SshClient client = SshClient.setUpDefaultClient(); FileKeyPairProvider keyPairProvider = new FileKeyPairProvider(Paths.get(privateKeyPath)); client.setKeyIdentityProvider(keyPairProvider); client.start(); System.out.println("add key to session only with try"); ClientSession session = client.connect(login,server,port).verify().getSession(); session.auth().verify(); // session.setKeyIdentityProvider(keyPairProvider); this.session = session; this.client = client; } public void uploadFile(String sourceFile, String destinationFile) throws IOException { try { SftpClient sftpClient = SftpClientFactory.instance().createSftpClient(session); File tmpFile = new File(sourceFile); String fileName = tmpFile.getName(); String destinationFilePath = destinationFile.endsWith("/") ? destinationFile + fileName : destinationFile + "/" + fileName; SftpClient.Handle handle = sftpClient.open(destinationFilePath, EnumSet.of(SftpClient.OpenMode.Write, SftpClient.OpenMode.Create)); String fileData = new String(Files.readAllBytes(Paths.get(sourceFile)));; sftpClient.write(handle, 0, fileData.getBytes(), 0, fileData.length()); sftpClient.close(handle); sftpClient.close(); if(session.isOpen()){ session.close(true); } if(client.isOpen()){ client.close(); } } catch (IOException e) { throw e; } } ``` And after every transfer task, I disconnect as below: ``` public void disconnect() throws IOException { if (c != null) { c.disconnect(); } if (channel != null) { channel.disconnect(); } if (session != null) { session.disconnect(0,""); session.close(true); session = null; } if(client != null) { client.stop(); client.close(); client = null; } } ``` ### Actual behavior not function well ### Expected behavior function well ### Relevant log output ```Shell org.apache.sshd.common.SshException: No more authentication methods available at org.apache.sshd.common.future.AbstractSshFuture.verifyResult(AbstractSshFuture.java:141) ~[sshd-common-2.12.1.jar:2.12.1] at org.apache.sshd.client.future.DefaultAuthFuture.verify(DefaultAuthFuture.java:56) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.client.future.DefaultAuthFuture.verify(DefaultAuthFuture.java:35) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.future.VerifiableFuture.verify(VerifiableFuture.java:43) ~[sshd-common-2.12.1.jar:2.12.1] at cx.cocca.utils.SFTPClient.connect(SFTPClient.java:133) ~[classes:?] at cx.cocca.registry.data.transfer.SFTPDataTransferService.testConnection(SFTPDataTransferService.java:31) [classes:?] at cx.cocca.registry.maintenance.EscrowFileUploader.testConnection(EscrowFileUploader.java:82) [classes:?] at cx.cocca.registry.maintenance.ZoneEscrowPartialServlet.testSFTPConnection(ZoneEscrowPartialServlet.java:562) [classes:?] at cx.cocca.registry.maintenance.ZoneEscrowPartialServlet.doPost(ZoneEscrowPartialServlet.java:123) [classes:?] at javax.servlet.http.HttpServlet.service(HttpServlet.java:159) [javaee-16.jar:?] at javax.servlet.http.HttpServlet.service(HttpServlet.java:97) [javaee-16.jar:?] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) [resin.jar:4.0.66] at cx.cocca.registry.configuration.TwoFALoginSetupFilter.doFilter(TwoFALoginSetupFilter.java:26) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.registry.configuration.TwoFALoginFilter.doFilter(TwoFALoginFilter.java:36) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.registry.configuration.PasswordAgeFilter.doFilter(PasswordAgeFilter.java:108) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.BannedIPAddressFilter.doFilter(BannedIPAddressFilter.java:50) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.DsRecordsMiniSiteFilter.doFilter(DsRecordsMiniSiteFilter.java:65) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.ActivationMiniSiteFilter.doFilter(ActivationMiniSiteFilter.java:53) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.WhoisMiniSiteFilter.doFilter(WhoisMiniSiteFilter.java:51) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.HistoricalAbstractMiniSiteFilter.doFilter(HistoricalAbstractMiniSiteFilter.java:54) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.KeyRetrievalMiniSiteFilter.doFilter(KeyRetrievalMiniSiteFilter.java:54) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.TransactionIdFilter.doFilter(TransactionIdFilter.java:51) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.registry.configuration.MaintenanceModeSessionInvalidationFilter.doFilter(MaintenanceModeSessionInvalidationFilter.java:83) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.AdminAuthFilter.doFilter(AdminAuthFilter.java:33) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.registry.configuration.DuplicateLoginSessionInvalidationFilter.doFilter(DuplicateLoginSessionInvalidationFilter.java:57) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.registry.configuration.LoginStateSynchronisationFilter.doFilter(LoginStateSynchronisationFilter.java:56) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at cx.cocca.utils.SingleIPAddressFilter.doFilter(SingleIPAddressFilter.java:46) [classes:?] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) [resin.jar:4.0.66] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156) [resin.jar:4.0.66] at com.caucho.server.rewrite.MatchFilterChain.doFilter(MatchFilterChain.java:98) [resin.jar:4.0.66] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156) [resin.jar:4.0.66] at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:95) [resin.jar:4.0.66] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:314) [resin.jar:4.0.66] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:845) [resin.jar:4.0.66] at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1395) [resin.jar:4.0.66] at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1351) [resin.jar:4.0.66] at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1335) [resin.jar:4.0.66] at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1243) [resin.jar:4.0.66] at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:1037) [resin.jar:4.0.66] at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) [resin.jar:4.0.66] at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) [resin.jar:4.0.66] at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.java:175) [resin.jar:4.0.66] at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) [resin.jar:4.0.66] at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) [resin.jar:4.0.66] at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) [resin.jar:4.0.66] Caused by: org.apache.sshd.common.SshException: No more authentication methods available at org.apache.sshd.client.session.ClientUserAuthService.tryNext(ClientUserAuthService.java:390) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.client.session.ClientUserAuthService.processUserAuth(ClientUserAuthService.java:346) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.client.session.ClientUserAuthService.process(ClientUserAuthService.java:267) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.session.helpers.CurrentService.process(CurrentService.java:109) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:624) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.session.helpers.AbstractSession.lambda$handleMessage$0(AbstractSession.java:545) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.util.threads.ThreadUtils.runAsInternal(ThreadUtils.java:68) ~[sshd-common-2.12.1.jar:2.12.1] at org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:544) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1688) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:505) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:64) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:409) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:382) ~[sshd-core-2.12.1.jar:2.12.1] at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:377) ~[sshd-core-2.12.1.jar:2.12.1] [2024-05-23 21:27:34] at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38) ~[sshd-core-2.12.1.jar:2.12.1] at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_402] at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37) ~[sshd-core-2.12.1.jar:2.12.1] at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126) ~[?:1.8.0_402] at sun.nio.ch.Invoker$2.run(Invoker.java:218) ~[?:1.8.0_402] at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) ~[?:1.8.0_402] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_402] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_402] at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_402] ``` ### Other information _No response_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org For additional commands, e-mail: dev-h...@mina.apache.org