Wie verwende ich Apache VFS2 für SFTP mit Public-Private-Key und ohne Passwort?

Derzeit verwende ich Apache VFS2, um Dateien von einem SFTP herunterzuladen. Zur Authentifizierung verwende ich Benutzername und Passwort.

Gibt es eine Möglichkeit, vfs2 nur mit Public-Private-Keys und ohne Passwort zu verwenden?

Ich denke, ich habe diese Funktion verwendet, aber wie? Setze es nur auf "yes"?

SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(options, "no");

Dies ist mein aktueller Code (Snippet):

private boolean downloadFile(){

    StandardFileSystemManager sysManager = new StandardFileSystemManager();

    //download der Datei
    try {
        sysManager.init();

        FileObject localFile = sysManager.resolveFile(localFilePath);

        FileObject remoteFile = sysManager.resolveFile(createConnectionString(host, user, password, fileName, port),createDefaultOptions());

        //Selectors.SELECT_FILES --> A FileSelector that selects only the base file/folder.
        localFile.copyFrom(remoteFile, Selectors.SELECT_FILES);


    } catch (Exception e) {
        logger.error("Downloading file failed: " + e.toString());
        return false;
    }finally{
        sysManager.close();
    }
    return true;
}

un

private FileSystemOptions createDefaultOptions() throws FileSystemException{

    //create options for sftp
    FileSystemOptions options = new FileSystemOptions();
    //ssh key
    SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(options, "no");
    //set root directory to user home
    SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(options, true);
    //timeout
    SftpFileSystemConfigBuilder.getInstance().setTimeout(options, timeout);

    return options;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage