使用私钥身份验证保护FTP

时间:2011-12-02 21:37:06

标签: java uri sftp private-key

我正在使用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 个答案:

答案 0 :(得分:3)

为什么不使用File.toURL

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