Безопасный FTP с использованием аутентификации по секретному ключу - PullRequest
0 голосов
/ 03 декабря 2011

Я использую библиотеку JSCH для выполнения sftp между двумя серверами. Но я не могу загрузить файл в URL, используя getResource(), из-за чего я получаю ошибку во время выполнения. Я проверил разрешения, и их 600, поэтому мы должны прочитать их.

    JSch jsch = new JSch();
    File file = new File("/home/xxxxxx/.ssh/id_rsa");
    Session session = null;
    URL keyFileURL = null;
    URI keyFileURI = null;
    if (file.exists())
    {
        keyFileURL = SecureFTP.class.getClassLoader().getResource("/home/xxxxxx/.ssh/id_rsa");
        if (keyFileURL == null)
        {
            System.out.println("what");
            throw new RuntimeException("Key file not found in classpath");
        }
    }
  try{
             keyFileURI = keyFileURL.toURI();
    }
    catch(Exception URISyntaxException)
    {
        System.out.println("Wrong URL. LOL");
}



    jsch.addIdentity(new File(keyFileURI).getAbsolutePath());

Что-то мне не хватает при загрузке ресурса или пути?

1 Ответ

3 голосов
/ 03 декабря 2011

Почему бы вам не использовать File.toURL

File file = new File("/home/dev85adm/.ssh/id_rsa");
if (file.exists()) {
    URL keyFileURL = file.toURL();
    //...
...