2014-01-10 91 views
1

我試圖從Java腳本連接到我的SFTP服務器。 我使用JSch lib來達到我的目的。用戶名,密碼和主機名是正確的,但我獲得:Auth失敗錯誤。JSchException:身份驗證失敗和指紋

我也嘗試在session.connect()之前添加以下幾行,但問題仍然存在。

java.util.Properties config = new java.util.Properties(); 
config.put("StrictHostKeyChecking", "no"); 
session.setConfig(config); 

我必須將什麼放在knownhosts.txt中?我的服務器密鑰的指紋?

public static void upload(ArrayList<File> a) { 
try{ 
    JSch jsch = new JSch(); 

    jsch.setKnownHosts("knownhosts.txt"); 

    Session session = jsch.getSession("username", "hostname", 22); 
    session.setPassword("mypassword"); 

    session.connect(); 

    Channel channel = session.openChannel("sftp"); 
    channel.connect(); 
    ChannelSftp channelSftp = (ChannelSftp) channel; 

    channelSftp.cd("/var/www/"); 

    for(File object: a){ 
     channelSftp.put(new FileInputStream(object), object.getName(), channelSftp.OVERWRITE); 
    } 
    channelSftp.exit(); 
session.disconnect(); 

} catch (Exception ex) { 
    ex.printStackTrace(); 
    }   
} 

你有什麼建議嗎?提前致謝!

回答