Search code examples
javasftpapache-mina

How to write SFTP client using Apache MINA library


I tried finding Java code for SFTP client using Apache MINA library but couldn't find it.

Could someone show me how to write a simple password authentication based SFTP client using Apache MINA library.

https://mina.apache.org/sshd-project/apidocs/org/apache/sshd/client/subsystem/sftp/SftpClient.html


Solution

  • Based on the examples in the README.md in the root of apache-sshd-2.2.0-src package:

    SshClient client = SshClient.setupDefaultClient();
    // override any default configuration...
    client.setSomeConfiguration(...);
    client.setOtherConfiguration(...);
    client.start();
    
    try (ClientSession session = client.connect(user, host, port).verify(timeout).getSession()) {
        session.addPasswordIdentity(password);
        session.auth.verify(timeout);
    
        // User-specific factory
        try (SftpClient sftp = DefaultSftpClientFactory.INSTANCE.createSftpClient(session)) {
            // use sftp here
        }
    }