2011-12-02 2 views
0

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

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()); 

Есть ли что-то, что мне не хватает, при загрузке ресурса или пути?

+0

? ключевой файл? программа компилируется в порядке, она дает мне ошибку во время выполнения. – roymustang86

+1

Является /home/xxxxxx/.ssh/id_rsa на пути к классам? Должно быть? Похоже, вы хотите получить файл в директории «/ home». Я не думаю, что это будет ресурс вашего приложения? –

ответ

3

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

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

Это помогло, но теперь я получаю ошибку auth, которая не связана. Благодарю. – roymustang86

+0

@ roymustang86: Нет проблем. –