我试图通过ssh从windows连接到unix服务器,我的目标是让它在我的java应用程序中运行,这样我就可以在每个连接上不输入密码就可以运行命令。
现在我正试着理解我在钥匙上做错了什么
我在Tectia中生成了一个密钥,并将其上传到服务器;我可以在.ssh中看到它为2798 Apr 17 10:56 authorized_keys。
我的连接设置如下
...
JSch jsch = new JSch();
jsch.setKnownHosts("~/.ssh/know_hosts");
jsch.addIdentity("~/.ssh/authorized_keys");
System.out.println("identity added ");
Session session=jsch.getSession(user, host, 22);
session.setConfig("PreferredAuthentications", "publickey");
System.out.println("session created.");
session.connect();
System.out.println("Connected");
....因此,我得到了这个错误
com.jcraft.jsch.JSchException: java.io.FileNotFoundException: C:\User\User\ .ssh\authorized_keys (系统找不到指定的路径)
它在查找本地计算机上的密钥,而不是连接到服务器
这些钥匙出什么问题了?
发布于 2019-04-17 15:28:11
addIdentity的参数是指向私有密钥的本地路径。
相反,您为它提供了一个文件的路径,该文件:
https://stackoverflow.com/questions/55730803
复制相似问题