我正在尝试建立与服务器的scp连接,但我在连接到服务器时遇到了问题。它抛出以下异常
com.jcraft.JschExceltion:Auth fail
在使用密码方法时,我能够连接,但在使用公钥方法时,它没有连接。
我还添加了主机文件。下面是代码片段:
....
jsch.addIdentity("~/.ssh/id_rsa");
jsch.addKnownHosts("~/.ssh/known_hosts");
....
答案 0 :(得分:0)
Java库通常不会扩展~
,并且该扩展也不是在操作系统级别完成的。在shell中使用该扩展时,shell本身正在进行替换。
换句话说,您的代码正在查找名为~
的目录中的文件,相对于程序的工作目录。
相反,您应该使用System.getProperty("user.home")
获取用户的主目录,并构建相对于该目录的路径。