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

Reply via email to