专业的编程技术博客社区

网站首页 > 博客文章 正文

【java开发】通过SSHClient实现文件上传到Linux

baijin 2024-11-12 09:37:52 博客文章 2 ℃ 0 评论

续上文:

通过pscp.exe文件+小工具复制密码实现文件从windows上传到linux

【Java开发】通过https://repo.maven.apache.org找到对应的jar包

我想法很简单,在开发环境不健全的情况下(没有Jenkins做流水发布等),我能用自助的方法实现版本从windows发布到Linux服务器。

网上找到了参考代码:

片段代码如下:

引入依赖:

<dependency>
    <groupId>net.schmizz</groupId>
    <artifactId>sshj</artifactId>
    <version>0.10.0</version>
</dependency>

片段代码:

package com.zx.app.ba.tool.item.info;


import lombok.Data;

/**
 * @author SH.YE
 */
@Data
public class SshInfoItem {
    String host;
    int port;
    String userName;
    String password;
}

package com.zx.app.ba.tool.util;

import com.zx.app.ba.tool.item.info.SshInfoItem;
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.sftp.SFTPClient;
import net.schmizz.sshj.transport.verification.PromiscuousVerifier;

import java.io.File;

/**
 * @author SH.YE
 */
public class SshClientUtil {


    public static String uploadFile(String host, int port, String userName, String password, 
                                    String localFilePath, String remoteDir) {
        try (SSHClient ssh = new SSHClient()) {
            // 如果是首次连接服务器或者确定服务器是可信的,
            // 可以通过调整主机密钥验证策略来接受新的主机密钥。
            // 例如,在使用sshj库(假设SSHClient来自sshj库)时,
            // 可以使用PromiscuousVerifier(不推荐用于生产环境,仅用于测试或确认信任关系)。
            ssh.addHostKeyVerifier(new PromiscuousVerifier());
            ssh.connect(host, port);
            ssh.authPassword(userName, password);

            try (SFTPClient sftp = ssh.newSFTPClient()) {
                File file = new File(localFilePath);
                sftp.put(file.getPath(), remoteDir + "/" + file.getName());
            }
            return "ok";
        } catch (Exception e) {
            return e.getMessage();
        }
    }

    public static void main(String[] args) {

        SshInfoItem info = SshInfoItem.createDemo();
        String host = info.getHost();
        int port = info.getPort();
        String userName = info.getUserName();
        String password = info.getPassword();
        String localFilePath = "C:\\Temps\\temp.zip";
        String remoteDir = "/webapp/tmp";

        String result = uploadFile(host, port, userName, password, localFilePath, remoteDir);
        System.out.println(result);
    }
}

输出效果:

"C:\Program Files\Java\jdk-1.8\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1\lib\idea_rt.jar=58991:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk-1.8\jre\lib\charsets.jar;C:\Program Files\Java\jdk-1.8\jre\lib\deploy.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk-1.8\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk-1.8\jre\lib\javaws.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jce.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jfr.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk-1.8\jre\lib\jsse.jar;C:\Program Files\Java\jdk-1.8\jre\lib\management-agent.jar;C:\Program Files\Java\jdk-1.8\jre\lib\plugin.jar;C:\Program Files\Java\jdk-1.8\jre\lib\resources.jar;C:\Program Files\Java\jdk-1.8\jre\lib\rt.jar;C:\Projects\zx\uni-user-devweb\code\uni-user-devweb\target\classes;C:\MyProgramFiles\maven\maven_jar\org\springframework\boot\spring-boot-starter-web\2.6.6\spring-boot-starter-web-2.6.6.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\boot\spring-boot-starter\2.6.6\spring-boot-starter-2.6.6.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\boot\spring-boot\2.6.6\spring-boot-2.6.6.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\boot\spring-boot-autoconfigure\2.6.6\spring-boot-autoconfigure-2.6.6.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\boot\spring-boot-starter-logging\2.6.6\spring-boot-starter-logging-2.6.6.jar;C:\MyProgramFiles\maven\maven_jar\ch\qos\logback\logback-classic\1.2.11\logback-classic-1.2.11.jar;C:\MyProgramFiles\maven\maven_jar\ch\qos\logback\logback-core\1.2.11\logback-core-1.2.11.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;C:\MyProgramFiles\maven\maven_jar\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;C:\MyProgramFiles\maven\maven_jar\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\MyProgramFiles\maven\maven_jar\org\yaml\snakeyaml\1.29\snakeyaml-1.29.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\boot\spring-boot-starter-json\2.6.6\spring-boot-starter-json-2.6.6.jar;C:\MyProgramFiles\maven\maven_jar\com\fasterxml\jackson\core\jackson-databind\2.13.2.2\jackson-databind-2.13.2.2.jar;C:\MyProgramFiles\maven\maven_jar\com\fasterxml\jackson\core\jackson-annotations\2.13.2\jackson-annotations-2.13.2.jar;C:\MyProgramFiles\maven\maven_jar\com\fasterxml\jackson\core\jackson-core\2.13.2\jackson-core-2.13.2.jar;C:\MyProgramFiles\maven\maven_jar\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.2\jackson-datatype-jdk8-2.13.2.jar;C:\MyProgramFiles\maven\maven_jar\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.2\jackson-datatype-jsr310-2.13.2.jar;C:\MyProgramFiles\maven\maven_jar\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.2\jackson-module-parameter-names-2.13.2.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\boot\spring-boot-starter-tomcat\2.6.6\spring-boot-starter-tomcat-2.6.6.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\tomcat\embed\tomcat-embed-core\9.0.60\tomcat-embed-core-9.0.60.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\tomcat\embed\tomcat-embed-el\9.0.60\tomcat-embed-el-9.0.60.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.60\tomcat-embed-websocket-9.0.60.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\spring-web\5.3.18\spring-web-5.3.18.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\spring-beans\5.3.18\spring-beans-5.3.18.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\spring-webmvc\5.3.18\spring-webmvc-5.3.18.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\spring-aop\5.3.18\spring-aop-5.3.18.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\spring-context\5.3.18\spring-context-5.3.18.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\spring-expression\5.3.18\spring-expression-5.3.18.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\spring-core\5.3.18\spring-core-5.3.18.jar;C:\MyProgramFiles\maven\maven_jar\org\springframework\spring-jcl\5.3.18\spring-jcl-5.3.18.jar;C:\MyProgramFiles\maven\maven_jar\org\assertj\assertj-core\3.21.0\assertj-core-3.21.0.jar;C:\MyProgramFiles\maven\maven_jar\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\kafka\kafka-clients\2.5.0\kafka-clients-2.5.0.jar;C:\MyProgramFiles\maven\maven_jar\com\github\luben\zstd-jni\1.4.4-7\zstd-jni-1.4.4-7.jar;C:\MyProgramFiles\maven\maven_jar\org\lz4\lz4-java\1.7.1\lz4-java-1.7.1.jar;C:\MyProgramFiles\maven\maven_jar\org\xerial\snappy\snappy-java\1.1.7.3\snappy-java-1.1.7.3.jar;C:\MyProgramFiles\maven\maven_jar\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;C:\MyProgramFiles\maven\maven_jar\dom4j\dom4j\2.1.3\dom4j-2.1.3.jar;C:\MyProgramFiles\maven\maven_jar\mysql\mysql-connector-java\8.0.28\mysql-connector-java-8.0.28.jar;C:\MyProgramFiles\maven\maven_jar\com\oracle\ojdbc14\10.2.0.4.0\ojdbc14-10.2.0.4.0.jar;C:\MyProgramFiles\maven\maven_jar\com\alibaba\fastjson\1.2.83\fastjson-1.2.83.jar;C:\MyProgramFiles\maven\maven_jar\commons-lang\commons-lang\2.5\commons-lang-2.5.jar;C:\MyProgramFiles\maven\maven_jar\redis\clients\jedis\4.2.3\jedis-4.2.3.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\commons\commons-pool2\2.11.1\commons-pool2-2.11.1.jar;C:\MyProgramFiles\maven\maven_jar\org\json\json\20211205\json-20211205.jar;C:\MyProgramFiles\maven\maven_jar\com\google\code\gson\gson\2.8.9\gson-2.8.9.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\activemq\activemq-pool\5.17.2\activemq-pool-5.17.2.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\activemq\activemq-jms-pool\5.16.4\activemq-jms-pool-5.16.4.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\geronimo\specs\geronimo-jms_1.1_spec\1.1.1\geronimo-jms_1.1_spec-1.1.1.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\activemq\activemq-client\5.16.4\activemq-client-5.16.4.jar;C:\MyProgramFiles\maven\maven_jar\org\fusesource\hawtbuf\hawtbuf\1.11\hawtbuf-1.11.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\geronimo\specs\geronimo-j2ee-management_1.1_spec\1.0.1\geronimo-j2ee-management_1.1_spec-1.0.1.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\geronimo\specs\geronimo-jta_1.1_spec\1.1.1\geronimo-jta_1.1_spec-1.1.1.jar;C:\MyProgramFiles\maven\maven_jar\org\projectlombok\lombok\1.18.22\lombok-1.18.22.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\poi\poi\3.10.1\poi-3.10.1.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\poi\poi-ooxml\3.10.1\poi-ooxml-3.10.1.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\poi\poi-ooxml-schemas\3.10.1\poi-ooxml-schemas-3.10.1.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;C:\MyProgramFiles\maven\maven_jar\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\MyProgramFiles\maven\maven_jar\com\github\pagehelper\pagehelper\5.3.2\pagehelper-5.3.2.jar;C:\MyProgramFiles\maven\maven_jar\com\github\jsqlparser\jsqlparser\4.5\jsqlparser-4.5.jar;C:\MyProgramFiles\maven\maven_jar\com\xuxueli\xxl-job-core\2.3.0\xxl-job-core-2.3.0.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-all\4.1.75.Final\netty-all-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-buffer\4.1.75.Final\netty-buffer-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec\4.1.75.Final\netty-codec-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-dns\4.1.75.Final\netty-codec-dns-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-haproxy\4.1.75.Final\netty-codec-haproxy-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-http\4.1.75.Final\netty-codec-http-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-http2\4.1.75.Final\netty-codec-http2-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-memcache\4.1.75.Final\netty-codec-memcache-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-mqtt\4.1.75.Final\netty-codec-mqtt-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-redis\4.1.75.Final\netty-codec-redis-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-smtp\4.1.75.Final\netty-codec-smtp-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-socks\4.1.75.Final\netty-codec-socks-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-stomp\4.1.75.Final\netty-codec-stomp-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-codec-xml\4.1.75.Final\netty-codec-xml-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-common\4.1.75.Final\netty-common-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-handler\4.1.75.Final\netty-handler-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-handler-proxy\4.1.75.Final\netty-handler-proxy-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-resolver\4.1.75.Final\netty-resolver-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-resolver-dns\4.1.75.Final\netty-resolver-dns-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport\4.1.75.Final\netty-transport-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-rxtx\4.1.75.Final\netty-transport-rxtx-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-sctp\4.1.75.Final\netty-transport-sctp-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-udt\4.1.75.Final\netty-transport-udt-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-classes-epoll\4.1.75.Final\netty-transport-classes-epoll-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-native-unix-common\4.1.75.Final\netty-transport-native-unix-common-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-classes-kqueue\4.1.75.Final\netty-transport-classes-kqueue-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-resolver-dns-classes-macos\4.1.75.Final\netty-resolver-dns-classes-macos-4.1.75.Final.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-native-epoll\4.1.75.Final\netty-transport-native-epoll-4.1.75.Final-linux-x86_64.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-native-epoll\4.1.75.Final\netty-transport-native-epoll-4.1.75.Final-linux-aarch_64.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-native-kqueue\4.1.75.Final\netty-transport-native-kqueue-4.1.75.Final-osx-x86_64.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-transport-native-kqueue\4.1.75.Final\netty-transport-native-kqueue-4.1.75.Final-osx-aarch_64.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-resolver-dns-native-macos\4.1.75.Final\netty-resolver-dns-native-macos-4.1.75.Final-osx-x86_64.jar;C:\MyProgramFiles\maven\maven_jar\io\netty\netty-resolver-dns-native-macos\4.1.75.Final\netty-resolver-dns-native-macos-4.1.75.Final-osx-aarch_64.jar;C:\MyProgramFiles\maven\maven_jar\org\codehaus\groovy\groovy\3.0.10\groovy-3.0.10.jar;C:\MyProgramFiles\maven\maven_jar\com\alipay\sdk\alipay-sdk-java\4.34.90.ALL\alipay-sdk-java-4.34.90.ALL.jar;C:\MyProgramFiles\maven\maven_jar\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\MyProgramFiles\maven\maven_jar\org\bouncycastle\bcprov-jdk15on\1.62\bcprov-jdk15on-1.62.jar;C:\MyProgramFiles\maven\maven_jar\javax\mail\mail\1.4.7\mail-1.4.7.jar;C:\MyProgramFiles\maven\maven_jar\javax\activation\activation\1.1\activation-1.1.jar;C:\MyProgramFiles\maven\maven_jar\cn\hutool\hutool-all\5.8.20\hutool-all-5.8.20.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\httpcomponents\httpclient\4.5.12\httpclient-4.5.12.jar;C:\MyProgramFiles\maven\maven_jar\org\apache\httpcomponents\httpcore\4.4.15\httpcore-4.4.15.jar;C:\MyProgramFiles\maven\maven_jar\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar;C:\MyProgramFiles\maven\maven_jar\com\microsoft\sqlserver\sqljdbc42\4.2\sqljdbc42-4.2.jar;C:\MyProgramFiles\maven\maven_jar\commons-net\commons-net\3.10.0\commons-net-3.10.0.jar;C:\MyProgramFiles\maven\maven_jar\com\belerweb\pinyin4j\2.5.1\pinyin4j-2.5.1.jar;C:\MyProgramFiles\maven\maven_jar\net\schmizz\sshj\0.10.0\sshj-0.10.0.jar;C:\MyProgramFiles\maven\maven_jar\org\bouncycastle\bcpkix-jdk15on\1.50\bcpkix-jdk15on-1.50.jar" com.zx.app.ba.tool.util.SshClientUtil
18:42:25.293 [main] DEBUG net.schmizz.sshj.common.SecurityUtils - Trying to register BouncyCastle as a JCE provider
18:42:25.953 [main] INFO net.schmizz.sshj.common.SecurityUtils - BouncyCastle registration succeeded
18:42:26.022 [main] INFO net.schmizz.sshj.transport.TransportImpl - Client identity string: SSH-2.0-SSHJ_0_9_2
18:42:26.052 [main] INFO net.schmizz.sshj.transport.TransportImpl - Server identity string: SSH-2.0-OpenSSH_7.4
18:42:26.053 [main] DEBUG net.schmizz.concurrent.Promise - Setting <<kex done>> to `null`
18:42:26.053 [main] DEBUG net.schmizz.sshj.transport.KeyExchanger - Sending SSH_MSG_KEXINIT
18:42:26.058 [main] DEBUG net.schmizz.concurrent.Promise - Setting <<kexinit sent>> to `SOME`
18:42:26.058 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<kex done>>
18:42:26.099 [reader] DEBUG net.schmizz.sshj.transport.KeyExchanger - Received SSH_MSG_KEXINIT
18:42:26.100 [reader] DEBUG net.schmizz.sshj.transport.KeyExchanger - Negotiated algorithms: [ kex=diffie-hellman-group14-sha1; sig=ecdsa-sha2-nistp256; c2sCipher=aes128-ctr; s2cCipher=aes128-ctr; c2sMAC=hmac-sha1; s2cMAC=hmac-sha1; c2sComp=none; s2cComp=none ]
18:42:26.397 [reader] DEBUG net.schmizz.sshj.transport.kex.DHG14 - Sending SSH_MSG_KEXDH_INIT
18:42:26.434 [reader] DEBUG net.schmizz.sshj.transport.KeyExchanger - Received kex followup data
18:42:26.434 [reader] DEBUG net.schmizz.sshj.transport.kex.DHG14 - Received SSH_MSG_KEXDH_REPLY
18:42:26.435 [reader] DEBUG net.schmizz.sshj.common.KeyType$3 - Key algo: ecdsa-sha2-nistp256, Key curve: nistp256, Key Len: 65, 0x04: 4
x: [-101, -11, -113, -94, 23, -7, -124, 54, -112, -43, 82, -101, -125, 9, -58, -86, -108, -72, -22, 90, 60, 59, -5, 73, 1, -9, 37, -118, -59, 109, -52, -50]
y: [-78, -121, 84, 25, 86, 87, 55, 32, 22, -116, 108, -74, -116, 13, -52, 71, 1, 51, 31, -106, 3, -83, -110, -44, -54, -120, 40, 9, 46, 103, 22, 80]
18:42:26.586 [reader] DEBUG net.schmizz.sshj.transport.KeyExchanger - Trying to verify host key with net.schmizz.sshj.transport.verification.PromiscuousVerifier@7bd215a9
18:42:26.586 [reader] DEBUG net.schmizz.sshj.transport.KeyExchanger - Sending SSH_MSG_NEWKEYS
18:42:26.586 [reader] DEBUG net.schmizz.sshj.transport.KeyExchanger - Received SSH_MSG_NEWKEYS
18:42:26.590 [reader] DEBUG net.schmizz.concurrent.Promise - Setting <<kexinit sent>> to `null`
18:42:26.590 [reader] DEBUG net.schmizz.concurrent.Promise - Setting <<kex done>> to `SOME`
18:42:26.590 [main] DEBUG net.schmizz.sshj.SSHClient - Key exchange took 0.537 seconds
18:42:26.592 [main] DEBUG net.schmizz.concurrent.Promise - Setting <<service accept>> to `null`
18:42:26.593 [main] DEBUG net.schmizz.sshj.transport.TransportImpl - Sending SSH_MSG_SERVICE_REQUEST for ssh-userauth
18:42:26.593 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<service accept>>
18:42:26.667 [reader] DEBUG net.schmizz.concurrent.Promise - Setting <<service accept>> to `SOME`
18:42:26.667 [main] DEBUG net.schmizz.sshj.transport.TransportImpl - Setting active service to ssh-userauth
18:42:26.667 [main] DEBUG net.schmizz.concurrent.Promise - Setting <<authenticated>> to `null`
18:42:26.668 [main] DEBUG net.schmizz.sshj.userauth.UserAuthImpl - Trying `password` auth...
18:42:26.668 [main] DEBUG net.schmizz.sshj.userauth.method.AuthPassword - Requesting password for [AccountResource] user@192.168.0.1
18:42:26.668 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<authenticated>>
18:42:26.698 [reader] DEBUG net.schmizz.concurrent.Promise - Setting <<authenticated>> to `true`
18:42:26.699 [main] DEBUG net.schmizz.sshj.userauth.UserAuthImpl - `password` auth successful
18:42:26.699 [main] DEBUG net.schmizz.sshj.transport.TransportImpl - Setting active service to ssh-connection
18:42:26.707 [main] DEBUG net.schmizz.sshj.connection.ConnectionImpl - Attaching `session` channel (#0)
18:42:26.708 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<chan#0 / open>>
18:42:26.730 [reader] DEBUG net.schmizz.sshj.transport.TransportImpl - Sending SSH_MSG_UNIMPLEMENTED for packet #5
18:42:26.756 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Initialized - < session channel: id=0, recipient=0, localWin=[winSize=2097152], remoteWin=[winSize=0] >
18:42:26.756 [reader] DEBUG net.schmizz.concurrent.Promise - Setting <<chan#0 / open>> to `SOME`
18:42:26.756 [main] INFO net.schmizz.sshj.connection.channel.direct.SessionChannel - Will request `sftp` subsystem
18:42:26.756 [main] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Sending channel request for `subsystem`
18:42:26.757 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<chan#0 / chanreq for subsystem>>
18:42:26.777 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 2097152 bytes
18:42:26.777 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 2097152 up to 2097152
18:42:26.777 [reader] DEBUG net.schmizz.concurrent.Promise - Setting <<chan#0 / chanreq for subsystem>> to `SOME`
18:42:26.781 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 9 down to 2097143
18:42:26.799 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 154 down to 2096998
18:42:26.801 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Server version 3
18:42:26.807 [main] DEBUG net.schmizz.sshj.xfer.LoggingTransferListener - started transferring file `temp.zip` (2016245 bytes)
18:42:26.808 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{1;STAT}
18:42:26.809 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 33 down to 2097110
18:42:26.809 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 1>>
18:42:26.834 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 41 down to 2096957
18:42:26.835 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received ATTRS packet
18:42:26.836 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 1>> to `Buffer [rpos=5, wpos=37, size=37]`
18:42:26.840 [main] DEBUG net.schmizz.sshj.sftp.SFTPFileTransfer - probeFile: /webapp/tmp/temp.zip is a REGULAR file that will be replaced
18:42:26.840 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{2;OPEN}
18:42:26.841 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 41 down to 2097069
18:42:26.841 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 2>>
18:42:26.862 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 17 down to 2096940
18:42:26.862 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received HANDLE packet
18:42:26.862 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 2>> to `Buffer [rpos=5, wpos=13, size=13]`
18:42:26.865 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{3;WRITE}
18:42:26.872 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 2064301
18:42:26.875 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{4;WRITE}
18:42:26.877 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 2031533
18:42:26.877 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{5;WRITE}
18:42:26.921 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1998765
18:42:26.921 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{6;WRITE}
18:42:26.922 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1965997
18:42:26.922 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{7;WRITE}
18:42:26.923 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1933229
18:42:26.923 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{8;WRITE}
18:42:26.924 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096912
18:42:26.925 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:26.925 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 3>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:26.947 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1900461
18:42:26.947 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096884
18:42:26.947 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{9;WRITE}
18:42:26.947 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:26.947 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 4>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:26.947 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1867693
18:42:26.947 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{10;WRITE}
18:42:26.948 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1834925
18:42:26.948 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{11;WRITE}
18:42:26.948 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1802157
18:42:26.948 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{12;WRITE}
18:42:26.949 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1769389
18:42:26.949 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{13;WRITE}
18:42:26.960 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 98387 bytes
18:42:26.960 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1736621
18:42:26.960 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 98387 up to 1835008
18:42:26.960 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{14;WRITE}
18:42:26.960 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096856
18:42:26.960 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:26.960 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 5>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:26.967 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1802240
18:42:26.967 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{15;WRITE}
18:42:26.967 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096828
18:42:26.967 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:26.967 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 6>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:26.975 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1769472
18:42:26.975 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096800
18:42:26.975 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096772
18:42:26.975 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{16;WRITE}
18:42:26.975 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:26.975 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 7>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:26.975 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:26.975 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 8>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:26.975 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1736704
18:42:26.975 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{17;WRITE}
18:42:26.976 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1703936
18:42:26.976 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{18;WRITE}
18:42:26.976 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1671168
18:42:26.977 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{19;WRITE}
18:42:26.977 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1638400
18:42:26.978 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{20;WRITE}
18:42:26.979 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1605632
18:42:26.979 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{21;WRITE}
18:42:26.980 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1572864
18:42:26.980 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{22;WRITE}
18:42:26.980 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:26.980 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{23;WRITE}
18:42:26.981 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1507328
18:42:26.981 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{24;WRITE}
18:42:26.981 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1474560
18:42:26.981 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{25;WRITE}
18:42:26.993 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1441792
18:42:26.993 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:26.993 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1572864
18:42:26.993 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 9>>
18:42:26.993 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096744
18:42:26.993 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:26.993 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096716
18:42:26.993 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 9>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:26.993 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:26.993 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{26;WRITE}
18:42:26.993 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 10>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:26.994 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:26.994 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{27;WRITE}
18:42:27.003 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1507328
18:42:27.003 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096688
18:42:27.003 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 11>>
18:42:27.003 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096660
18:42:27.003 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.003 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 11>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.003 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.003 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 12>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.003 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{28;WRITE}
18:42:27.004 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1474560
18:42:27.004 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.004 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1605632
18:42:27.004 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{29;WRITE}
18:42:27.004 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096632
18:42:27.004 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.004 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 13>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.005 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1572864
18:42:27.005 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{30;WRITE}
18:42:27.010 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:27.010 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 14>>
18:42:27.012 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096604
18:42:27.012 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.012 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096576
18:42:27.012 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 14>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.012 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.012 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{31;WRITE}
18:42:27.012 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 15>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.014 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1507328
18:42:27.014 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{32;WRITE}
18:42:27.029 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1474560
18:42:27.029 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096548
18:42:27.029 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 16>>
18:42:27.029 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.029 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 16>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.029 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{33;WRITE}
18:42:27.032 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1441792
18:42:27.032 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.032 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1572864
18:42:27.032 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 17>>
18:42:27.032 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096520
18:42:27.032 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.032 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 17>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.032 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096492
18:42:27.032 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.032 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 18>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.032 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096464
18:42:27.032 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{34;WRITE}
18:42:27.032 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.032 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 19>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.033 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:27.033 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{35;WRITE}
18:42:27.034 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096436
18:42:27.034 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.034 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 20>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.034 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.034 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1671168
18:42:27.034 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096408
18:42:27.034 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.035 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 21>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.035 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1638400
18:42:27.035 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{36;WRITE}
18:42:27.036 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1605632
18:42:27.036 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{37;WRITE}
18:42:27.036 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1572864
18:42:27.036 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{38;WRITE}
18:42:27.037 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:27.037 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 22>>
18:42:27.050 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096380
18:42:27.050 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.050 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 22>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.051 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{39;WRITE}
18:42:27.052 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1507328
18:42:27.052 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 23>>
18:42:27.059 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096352
18:42:27.059 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.059 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 23>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.059 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{40;WRITE}
18:42:27.060 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096324
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1638400
18:42:27.061 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.061 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1605632
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096296
18:42:27.061 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 24>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096268
18:42:27.061 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096240
18:42:27.061 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 25>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.061 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.061 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 26>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096212
18:42:27.061 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{41;WRITE}
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1736704
18:42:27.061 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.061 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 27>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.061 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096184
18:42:27.061 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.061 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 28>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.062 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.062 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 29>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.063 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1703936
18:42:27.063 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{42;WRITE}
18:42:27.065 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1671168
18:42:27.065 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{43;WRITE}
18:42:27.066 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1638400
18:42:27.066 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{44;WRITE}
18:42:27.067 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1605632
18:42:27.067 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{45;WRITE}
18:42:27.068 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1572864
18:42:27.068 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{46;WRITE}
18:42:27.069 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:27.069 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 30>>
18:42:27.075 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096156
18:42:27.075 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096128
18:42:27.075 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096100
18:42:27.075 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.075 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.076 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1671168
18:42:27.076 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 30>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.077 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.077 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 31>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.077 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.077 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 32>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.077 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{47;WRITE}
18:42:27.077 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096072
18:42:27.078 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.078 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 33>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.079 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1638400
18:42:27.079 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{48;WRITE}
18:42:27.080 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1605632
18:42:27.080 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{49;WRITE}
18:42:27.080 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1572864
18:42:27.080 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{50;WRITE}
18:42:27.081 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:27.081 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 34>>
18:42:27.082 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096044
18:42:27.082 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.082 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 34>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.082 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2096016
18:42:27.082 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.082 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 35>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.082 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{51;WRITE}
18:42:27.082 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095988
18:42:27.082 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.082 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.082 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1671168
18:42:27.082 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 36>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.082 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095960
18:42:27.082 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.082 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 37>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.083 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1638400
18:42:27.083 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{52;WRITE}
18:42:27.083 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1605632
18:42:27.083 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{53;WRITE}
18:42:27.084 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1572864
18:42:27.084 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{54;WRITE}
18:42:27.084 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:27.084 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 38>>
18:42:27.089 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095932
18:42:27.089 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095904
18:42:27.089 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.089 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 38>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.090 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.090 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 39>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.090 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{55;WRITE}
18:42:27.090 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095876
18:42:27.090 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.090 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 40>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.090 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1507328
18:42:27.091 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{56;WRITE}
18:42:27.091 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1474560
18:42:27.091 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{57;WRITE}
18:42:27.092 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1441792
18:42:27.092 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 41>>
18:42:27.093 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.093 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1572864
18:42:27.093 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095848
18:42:27.093 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.093 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 41>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.093 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{58;WRITE}
18:42:27.094 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:27.094 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 42>>
18:42:27.101 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095820
18:42:27.101 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.101 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 42>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.101 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{59;WRITE}
18:42:27.101 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1507328
18:42:27.102 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 43>>
18:42:27.105 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095792
18:42:27.105 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.105 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 43>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.105 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095764
18:42:27.105 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.105 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.105 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1638400
18:42:27.105 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{60;WRITE}
18:42:27.105 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 44>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.105 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095736
18:42:27.106 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095708
18:42:27.106 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.106 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 45>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.106 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.106 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 46>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.106 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1605632
18:42:27.106 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{61;WRITE}
18:42:27.107 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1572864
18:42:27.107 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{62;WRITE}
18:42:27.107 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1540096
18:42:27.107 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{63;WRITE}
18:42:27.108 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 32768 down to 1507328
18:42:27.108 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 47>>
18:42:27.140 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095680
18:42:27.140 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.140 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 47>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.140 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{64;WRITE}
18:42:27.140 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 19195 down to 1488133
18:42:27.140 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 48>>
18:42:27.152 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095652
18:42:27.152 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.152 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1619205
18:42:27.152 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.152 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 48>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.152 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095624
18:42:27.153 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095596
18:42:27.153 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.153 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 49>>
18:42:27.153 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 49>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.153 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.153 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 50>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.153 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 51>>
18:42:27.154 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095568
18:42:27.154 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095540
18:42:27.154 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.154 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.154 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 51>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.154 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1750277
18:42:27.154 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.154 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095512
18:42:27.154 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095484
18:42:27.154 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 52>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.154 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.154 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 53>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.154 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 54>>
18:42:27.154 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.155 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 54>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.156 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 55>>
18:42:27.160 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095456
18:42:27.160 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.160 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 55>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.160 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 56>>
18:42:27.161 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095428
18:42:27.162 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.162 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 1881349
18:42:27.162 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.162 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 56>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.162 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 57>>
18:42:27.164 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095400
18:42:27.164 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.164 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 57>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.164 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 58>>
18:42:27.166 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095372
18:42:27.167 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.167 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 58>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.167 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 59>>
18:42:27.168 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095344
18:42:27.168 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.168 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 59>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.168 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 60>>
18:42:27.193 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095316
18:42:27.193 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Received window adjustment for 131072 bytes
18:42:27.193 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Increasing by 131072 up to 2012421
18:42:27.193 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.193 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095288
18:42:27.193 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 60>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.193 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095260
18:42:27.193 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.193 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 61>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.193 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.193 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 62>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.193 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 63>>
18:42:27.198 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095232
18:42:27.198 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095204
18:42:27.198 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.198 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 63>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.198 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 64>>
18:42:27.198 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.198 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 64>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.198 [main] INFO net.schmizz.sshj.common.StreamCopier - 1968.9892578125 KiB transferred in 0.333 seconds (5912.880654091591 KiB/s)
18:42:27.198 [main] DEBUG net.schmizz.sshj.sftp.RemoteFile - Closing `RemoteResource{/webapp/tmp/temp.zip}`
18:42:27.198 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{65;CLOSE}
18:42:27.198 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 17 down to 2012404
18:42:27.198 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 65>>
18:42:27.219 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095176
18:42:27.219 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.219 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 65>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.222 [main] DEBUG net.schmizz.sshj.sftp.SFTPEngine - Sending Request{66;SETSTAT}
18:42:27.222 [main] DEBUG net.schmizz.sshj.connection.channel.Window$Remote - Consuming by 49 down to 2012355
18:42:27.222 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<sftp / 66>>
18:42:27.243 [reader] DEBUG net.schmizz.sshj.connection.channel.Window$Local - Consuming by 28 down to 2095148
18:42:27.243 [sftp reader] DEBUG net.schmizz.sshj.sftp.PacketReader - Received STATUS packet
18:42:27.243 [sftp reader] DEBUG net.schmizz.concurrent.Promise - Setting <<sftp / 66>> to `Buffer [rpos=5, wpos=24, size=24]`
18:42:27.243 [main] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Sending close
18:42:27.244 [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <<chan#0 / close>>
18:42:27.265 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Got chan request for `exit-status`
18:42:27.265 [reader] DEBUG net.schmizz.sshj.connection.channel.direct.SessionChannel - Got close
18:42:27.266 [reader] DEBUG net.schmizz.sshj.connection.ConnectionImpl - Forgetting `session` channel (#0)
18:42:27.266 [reader] DEBUG net.schmizz.concurrent.Promise - Setting <<chan#0 / close>> to `SOME`
18:42:27.268 [main] INFO net.schmizz.sshj.transport.TransportImpl - Disconnected - BY_APPLICATION
18:42:27.268 [main] DEBUG net.schmizz.sshj.connection.ConnectionImpl - Notified of net.schmizz.sshj.transport.TransportException: [BY_APPLICATION] Disconnected
18:42:27.269 [main] DEBUG net.schmizz.sshj.transport.TransportImpl - Sending SSH_MSG_DISCONNECT: reason=[BY_APPLICATION], msg=[]
18:42:27.270 [main] DEBUG net.schmizz.concurrent.Promise - Setting <<transport close>> to `SOME`
ok
18:42:27.270 [reader] DEBUG net.schmizz.sshj.transport.Reader - Stopping

Process finished with exit code 0



说明:

没有设置

ssh.addHostKeyVerifier(new PromiscuousVerifier());

执行报错:

Could not verify `ecdsa-sha2-nistp256` host key with fingerprint `1e:42:09:76:39:55:fa:7d:7e:f8:c8:eb:fd:be:63:e2` for `192.168.0.1` on port 22

豆包AI咨询看到


就是:

  1. 问题根源当使用SSHClient时出现 “Could not verify ecdsa - sha2 - nistp256 host key with fingerprint” 错误,表明在 SSH 连接过程中主机密钥验证失败。这可能是因为客户端首次连接到服务器,没有保存服务器的主机密钥指纹;或者服务器的主机密钥发生了变化,而客户端仍在使用旧的指纹进行验证;也可能是存在网络问题导致获取到的指纹不准确。
  2. 解决方案首次连接或确认服务器可信时如果是首次连接服务器或者确定服务器是可信的,可以通过调整主机密钥验证策略来接受新的主机密钥。例如,在使用sshj库(假设SSHClient来自sshj库)时,可以使用PromiscuousVerifier(不推荐用于生产环境,仅用于测试或确认信任关系)。

信任的主机,我选择了添加这行代码解决:

ssh.addHostKeyVerifier(new PromiscuousVerifier());

代码可以改成如下:

package com.zx.app.ba.tool.util;

import com.zx.app.ba.tool.item.info.SshInfoItem;
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.sftp.SFTPClient;
import net.schmizz.sshj.transport.verification.PromiscuousVerifier;

import java.io.File;

/**
 * @author SH.YE
 */
public class SshClientUtil {


    public static String uploadFile(String host, int port, String userName, String password, 
                                    boolean hostKeyVerifierFlag, String localFilePath, String remoteDir) {
        try (SSHClient ssh = new SSHClient()) {
            // 如果是首次连接服务器或者确定服务器是可信的,
            // 可以通过调整主机密钥验证策略来接受新的主机密钥。
            // 例如,在使用sshj库(假设SSHClient来自sshj库)时,
            // 可以使用PromiscuousVerifier(不推荐用于生产环境,仅用于测试或确认信任关系)。
            if (hostKeyVerifierFlag) {
                ssh.addHostKeyVerifier(new PromiscuousVerifier());
            }
            ssh.connect(host, port);
            ssh.authPassword(userName, password);

            try (SFTPClient sftp = ssh.newSFTPClient()) {
                File file = new File(localFilePath);
                sftp.put(file.getPath(), remoteDir + "/" + file.getName());
            }
            return "ok";
        } catch (Exception e) {
            return e.getMessage();
        }
    }

    public static void main(String[] args) {

        SshInfoItem info = SshInfoItem.createDemo();
        String host = info.getHost();
        int port = info.getPort();
        String userName = info.getUserName();
        String password = info.getPassword();
        boolean hostKeyVerifierFlag =
          (info.getHostKeyVerifierFlag() != null && info.getHostKeyVerifierFlag().intValue() == 1);
        String localFilePath = "C:\\Temps\\temp.zip";
        String remoteDir = "/webapp/tmp";

        String result = uploadFile
        (host, port, userName, password, hostKeyVerifierFlag, localFilePath, remoteDir);
        System.out.println(result);
    }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表