Jsch auth使用公钥失败

时间:2016-04-07 06:12:34

标签: java

我正在尝试建立与服务器的scp连接,但我在连接到服务器时遇到了问题。它抛出以下异常

  

com.jcraft.JschExceltion:Auth fail

在使用密码方法时,我能够连接,但在使用公钥方法时,它没有连接。

我还添加了主机文件。下面是代码片段:

....
jsch.addIdentity("~/.ssh/id_rsa");                         
jsch.addKnownHosts("~/.ssh/known_hosts");
....

1 个答案:

答案 0 :(得分:0)

Java库通常不会扩展~,并且该扩展也不是在操作系统级别完成的。在shell中使用该扩展时,shell本身正在进行替换。

换句话说,您的代码正在查找名为~的目录中的文件,相对于程序的工作目录。

相反,您应该使用System.getProperty("user.home")获取用户的主目录,并构建相对于该目录的路径。