如何使用带有OpenSSL的Apache FTPSClient进行身份验证

时间:2019-06-10 19:44:46

标签: apache groovy openssl sftp

我需要管理SFTP服务器上的文件,该服务器已注册了我的OpenSSH公共密钥。现在,我应该使用私钥建立连接。 除了本机库,我只有Apache Commons可以使用,因此我尝试与FTPSClient连接。

我不明白如何将Java keytool与OpenSSH密钥一起使用,我正在寻求帮助以使代码正常工作。

这是我想要工作的常规代码

final String URL = 'my.ftp.url'
final String PASSWORD = ""
final String KEYSTORE_PASSWORD = ""
final String USER = 'myUser'
final String DIR = ''

KeyManager km = KeyManagerUtils.createClientKeyManager(new File("../openssh-priv-key"), KEYSTORE_PASSWORD)

new FTPSClient().with {
    println "connect to $URL"
    connect "$URL"
    println replyString

    setKeyManager(keyManager)
    println replyString

    enterLocalPassiveMode()
    login USER, PASSWORD
    println replyString

    if(DIR)
        changeWorkingDirectory DIR

    fileType = FTPClient.BINARY_FILE_TYPE
    println replyString

    disconnect()
    println "Disconnected from the server"
}

0 个答案:

没有答案