无法使用Apache Camel SFTP和公共/私有ssh密钥连接到主机

bz4sfanl  于 2023-02-22  发布在  Apache
关注(0)|答案(1)|浏览(145)

当我尝试使用Apache Camel连接到由业务合作伙伴控制的SFTP主机时,我遇到了一个问题。我创建了一个ssh公钥/私钥对,他们在服务器上安装了公钥,通过fileZilla和shell sftp,我可以连接,没有任何问题。但当我尝试使用Apache Camel连接时,我收到了一个错误:方法“publickey,password”的验证失败我知道Camel中的jsch库存在问题,但是我已经升级到Camel版本3.19,并且根据可以通过./gradlew dependencies' im使用jsch 'mwiede'版本0.2.1的分支查看的依赖树
我试图连接的SFTP服务器显然相当旧,但我对此没有影响。当使用shell sftp命令时,必须使用选项“-oHostKeyAlgorithms=+ssh-dss”,但在此之后,它的工作没有问题。
我在IntelliJ中从MacOS本地运行它-使用springboot 2.6.7和java 17 Camel 路线看起来像这样

public void configure() {

    String privateKeyString = Files.readString(Path.of("/Users/jaan/.ssh/id_rsa_cloud-integration_test"), StandardCharsets.UTF_8);
    getCamelContext().getRegistry().bind("myPrivateKey", privateKeyString.getBytes(StandardCharsets.UTF_8));

    from(aws2S3(bucketId + "?amazonS3Client=#s3Client" + awsGetObjectUriParams))

        .choice()
        .when(body().isNull())
            .log("Looking for files in S3 bucket - but found none")
        .otherwise()
            .log("Found file in S3 [${headers.CamelAwsS3Key}]")
            .process(exchange ->  {
                exchange.getIn().setHeader("CamelAwsS3BucketDestinationName", bucketId);
                exchange.getIn().setHeader("CamelAwsS3DestinationKey", generateFileName(exchange));
                log.info("Uploading file to S3 bucket [{}] and prefix [{}]", bucketId, exchange.getIn().getHeader("CamelAwsS3DestinationKey"));
            })
            .to(aws2S3(bucketId + "?amazonS3Client=#s3Client&operation=copyObject"))

            .to(sftp(host+":22/test?maximumReconnectAttempts=1")
                .binary(true)
                .privateKey("#myPrivateKey")
                .username(sshUserName)
                .jschLoggingLevel("TRACE")
                .serverHostKeys("ssh-dss")
                .knownHostsFile("/Users/jka/.ssh/known_hosts")

我也尝试过简单地将ssh私钥作为字符串复制到路由中。

.   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::                (v2.6.7)
    
    dk.ds.cargo.Application          : Starting Application using Java 17.0.5 on COM1865 with PID 47585 (/Users/jka/workspace_git/bis-cargo-programblade/build/classes/java/main started by jka in /Users/jka/workspace_git/bis-cargo-programblade)
    dk.ds.cargo.Application          : Running with Spring Boot v2.6.7, Spring v5.3.19
    dk.ds.cargo.Application          : The following 1 profile is active: "local"
    o.s.b.devtools.restart.ChangeableUrls    : The Class-Path manifest attribute in /Users/jka/.m2/repository/com/sun/xml/bind/jaxb-core/2.3.0/jaxb-core-2.3.0.jar referenced one or more files that do not exist: file:/Users/jka/.m2/repository/com/sun/xml/bind/jaxb-core/2.3.0/jaxb-api.jar
    .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
    .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
    o.s.cloud.context.scope.GenericScope     : BeanFactory id=5934d1b4-b141-3085-8f00-cedb8da5fbc5
    o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
    o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.62]
    o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3519 ms
    o.s.s.web.DefaultSecurityFilterChain     : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6587be01, org.springframework.security.web.context.SecurityContextPersistenceFilter@5943fb8e, org.springframework.security.web.header.HeaderWriterFilter@1182b1fe, org.springframework.security.web.csrf.CsrfFilter@47903918, org.springframework.security.web.authentication.logout.LogoutFilter@268e02b2, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@66a704a1, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@4c442cf0, org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter@3a072250, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1bbe8c42, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@491c5377, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@2100053f, org.springframework.security.web.session.SessionManagementFilter@7cca7c8d, org.springframework.security.web.access.ExceptionTranslationFilter@1a79bb88, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2297c946]
    o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
    o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/monitor'
    o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    d.d.cargo.programblade.ProgrambladRoute  : host <host ip adress>
    d.d.cargo.programblade.ProgrambladRoute  : userName <username>
    .c.i.e.DefaultAutowiredLifecycleStrategy : Autowired property: amazonS3Client on component: aws2-s3 as exactly one instance of type: software.amazon.awssdk.services.s3.S3Client (software.amazon.awssdk.services.s3.DefaultS3Client) found in the registry
    o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 3.19.0 (camel-1) is starting
    o.a.c.impl.engine.AbstractCamelContext   : Routes startup (started:1)
    o.a.c.impl.engine.AbstractCamelContext   :     Started route1 (aws2-s3://<bucket ID>)
    o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 3.19.0 (camel-1) started in 1s687ms (build:85ms init:777ms start:825ms)
    dk.ds.cargo.Application          : Started Application in 11.607 seconds (JVM running for 12.253)
    dk.ds.cargo.Application          : Spring application is ready to serve!
    route1                                   : Found file in S3 [s3 bucket prefix]
    d.d.cargo.programblade.ProgrambladRoute  : Uploading file to S3 bucket [bucketID] and prefix [prefix]
    o.a.c.c.file.remote.SftpOperations       : JSCH -> Connecting to <host IP adress> port 22
    o.a.c.c.file.remote.SftpOperations       : JSCH -> Connection established
    o.a.c.c.file.remote.SftpOperations       : JSCH -> Remote version string: SSH-2.0-9.99 sshlib
    o.a.c.c.file.remote.SftpOperations       : JSCH -> Local version string: SSH-2.0-JSCH_0.2.1
    o.a.c.c.file.remote.SftpOperations       : JSCH -> CheckCiphers: chacha20-poly1305@openssh.com
    o.a.c.c.file.remote.SftpOperations       : JSCH -> CheckKexes: curve25519-sha256,curve25519-sha256@libssh.org,curve448-sha512
    o.a.c.c.file.remote.SftpOperations       : JSCH -> CheckSignatures: ssh-ed25519,ssh-ed448
    o.a.c.c.file.remote.SftpOperations       : JSCH -> SSH_MSG_KEXINIT sent
    o.a.c.c.file.remote.SftpOperations       : JSCH -> SSH_MSG_KEXINIT received
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server: diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server: ssh-dss
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server: aes256-ctr,twofish256-ctr,twofish-ctr,aes128-ctr,twofish128-ctr,3des-ctr,cast128-ctr,aes256-cbc,twofish256-cbc,twofish-cbc,aes128-cbc,twofish128-cbc,blowfish-cbc,3des-cbc,arcfour,cast128-cbc
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server: aes256-ctr,twofish256-ctr,twofish-ctr,aes128-ctr,twofish128-ctr,3des-ctr,cast128-ctr,aes256-cbc,twofish256-cbc,twofish-cbc,aes128-cbc,twofish128-cbc,blowfish-cbc,3des-cbc,arcfour,cast128-cbc
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server: hmac-sha2-512,hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server: hmac-sha2-512,hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server: zlib,none
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server: zlib,none
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server:
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server:
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client: ssh-dss
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client: hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client: hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client: none
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client: none
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client:
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client:
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: algorithm: diffie-hellman-group-exchange-sha256
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: host key algorithm: ssh-dss
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: server->client cipher: aes128-ctr MAC: hmac-sha2-256 compression: none
    o.a.c.c.file.remote.SftpOperations       : JSCH -> kex: client->server cipher: aes128-ctr MAC: hmac-sha2-256 compression: none
    o.a.c.c.file.remote.SftpOperations       : JSCH -> SSH_MSG_KEX_DH_GEX_REQUEST(2048<3072<8192) sent
    o.a.c.c.file.remote.SftpOperations       : JSCH -> expecting SSH_MSG_KEX_DH_GEX_GROUP
    o.a.c.c.file.remote.SftpOperations       : JSCH -> SSH_MSG_KEX_DH_GEX_INIT sent
    o.a.c.c.file.remote.SftpOperations       : JSCH -> expecting SSH_MSG_KEX_DH_GEX_REPLY
    o.a.c.c.file.remote.SftpOperations       : JSCH -> ssh_dss_verify: signature true
    o.a.c.c.file.remote.SftpOperations       : JSCH -> Host '<IP adress>' is known and matches the DSA host key
    o.a.c.c.file.remote.SftpOperations       : JSCH -> SSH_MSG_NEWKEYS sent
    o.a.c.c.file.remote.SftpOperations       : JSCH -> SSH_MSG_NEWKEYS received
    o.a.c.c.file.remote.SftpOperations       : JSCH -> SSH_MSG_SERVICE_REQUEST sent
    o.a.c.c.file.remote.SftpOperations       : JSCH -> SSH_MSG_SERVICE_ACCEPT received
    o.a.c.c.file.remote.SftpOperations       : JSCH -> Authentications that can continue: publickey
    o.a.c.c.file.remote.SftpOperations       : JSCH -> Next authentication method: publickey
    o.a.c.c.file.remote.SftpOperations       : JSCH -> Disconnecting from <IP adress> port 22
    o.a.c.c.file.remote.RemoteFileProducer   : Writing file failed with: Cannot connect to sftp://<username>@<IP adress>:22
    o.a.c.p.e.DefaultErrorHandler            : Failed delivery for (MessageId: 1EFB2ABB1EFFD39-0000000000000000 on ExchangeId: 1EFB2ABB1EFFD39-0000000000000000). Exhausted after delivery attempt: 1 caught: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to sftp://<username>@<IP adress>:22
    
    Message History (source location and message history is disabled)
    ---------------------------------------------------------------------------------------------------------------------------------------
    Source                                   ID                             Processor                                          Elapsed (ms)
                                             route1/route1                  from[aws2-s3://ds-cloud-integration-test?amazonS3C     12845806
        ...
                                             route1/to2                     sftp://<IP adress>:22/test-folder?maximumReconnec            0
    
    Stacktrace
    ---------------------------------------------------------------------------------------------------------------------------------------
    
    org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to sftp://<username>@<IP adress>:22
        at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:137)
        at org.apache.camel.component.file.remote.RemoteFileProducer.connectIfNecessary(RemoteFileProducer.java:184)
        at org.apache.camel.component.file.remote.RemoteFileProducer.preWriteCheck(RemoteFileProducer.java:133)
        at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:113)
        at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:61)
        at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66)
        at org.apache.camel.processor.SendProcessor.lambda$process$2(SendProcessor.java:191)
        at org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:327)
        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:190)
        at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477)
        at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181)
        at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:175)
        at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392)
        at org.apache.camel.component.aws2.s3.AWS2S3Consumer.processBatch(AWS2S3Consumer.java:300)
        at org.apache.camel.component.aws2.s3.AWS2S3Consumer.poll(AWS2S3Consumer.java:175)
        at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:202)
        at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:116)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
    Caused by: com.jcraft.jsch.JSchException: Auth fail for methods 'publickey,password'
        at com.jcraft.jsch.Session.connect(Session.java:532)
        at org.apache.camel.component.file.remote.SftpOperations.tryConnect(SftpOperations.java:160)
        at org.apache.camel.support.task.ForegroundTask.run(ForegroundTask.java:92)
        at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:135)
        ... 23 common frames omitted
    
    2022-12-16 13:27:03.248  WARN o.a.c.component.aws2.s3.AWS2S3Consumer   : Exchange failed, so rolling back message status: Exchange[1EFB2ABB1EFFD39-0000000000000000]
    
    org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to sftp://<username>@<IP adress>:22
        at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:137)
        at org.apache.camel.component.file.remote.RemoteFileProducer.connectIfNecessary(RemoteFileProducer.java:184)
        at org.apache.camel.component.file.remote.RemoteFileProducer.preWriteCheck(RemoteFileProducer.java:133)
        at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:113)
        at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:61)
        at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66)
        at org.apache.camel.processor.SendProcessor.lambda$process$2(SendProcessor.java:191)
        at org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:327)
        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:190)
        at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477)
        at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181)
        at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:175)
        at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392)
        at org.apache.camel.component.aws2.s3.AWS2S3Consumer.processBatch(AWS2S3Consumer.java:300)
        at org.apache.camel.component.aws2.s3.AWS2S3Consumer.poll(AWS2S3Consumer.java:175)
        at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:202)
        at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:116)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
    Caused by: com.jcraft.jsch.JSchException: Auth fail for methods 'publickey,password'
        at com.jcraft.jsch.Session.connect(Session.java:532)
        at org.apache.camel.component.file.remote.SftpOperations.tryConnect(SftpOperations.java:160)
        at org.apache.camel.support.task.ForegroundTask.run(ForegroundTask.java:92)
        at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:135)
        ... 23 common frames omitted
    
    2022-12-16 13:27:03.249  WARN o.a.c.component.aws2.s3.AWS2S3Consumer   : Error processing exchange. Exchange[1EFB2ABB1EFFD39-0000000000000000]. Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - Cannot connect to sftp://<username>@<IP adress>:22]
    
    org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to sftp://<username>@<IP adress>:22
        at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:137)
        at org.apache.camel.component.file.remote.RemoteFileProducer.connectIfNecessary(RemoteFileProducer.java:184)
        at org.apache.camel.component.file.remote.RemoteFileProducer.preWriteCheck(RemoteFileProducer.java:133)
        at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:113)
        at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:61)
        at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:66)
        at org.apache.camel.processor.SendProcessor.lambda$process$2(SendProcessor.java:191)
        at org.apache.camel.support.cache.DefaultProducerCache.doInAsyncProducer(DefaultProducerCache.java:327)
        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:190)
        at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477)
        at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181)
        at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:175)
        at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392)
        at org.apache.camel.component.aws2.s3.AWS2S3Consumer.processBatch(AWS2S3Consumer.java:300)
        at org.apache.camel.component.aws2.s3.AWS2S3Consumer.poll(AWS2S3Consumer.java:175)
        at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:202)
        at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:116)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
    Caused by: com.jcraft.jsch.JSchException: Auth fail for methods 'publickey,password'
        at com.jcraft.jsch.Session.connect(Session.java:532)
        at org.apache.camel.component.file.remote.SftpOperations.tryConnect(SftpOperations.java:160)
        at org.apache.camel.support.task.ForegroundTask.run(ForegroundTask.java:92)
        at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:135)
        ... 23 common frames omitted

我希望我能得到一些帮助,使这项工作,并避免被迫尝试实现它在纯Java与sftp库

ny6fqffe

ny6fqffe1#

关于这个问题:Auth fail with JSch against libssh server with "rsa-sha2-512"
解决方案是设置这两个属性

.serverHostKeys("ssh-dss")
.publicKeyAcceptedAlgorithms("ssh-rsa")

然后就成功了

相关问题