jsch ssh 连接无法获得authorized_keys

我正在尝试通过 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:\Users\User\ .ssh\authorized_keys (系统找不到指定的路径)


它正在我的本地计算机上寻找密钥,但未连接到服务器


这些键我怎么了?


慕的地8271018
浏览 303回答 1
1回答

MMMHUHU

to 的参数addIdentity是您的私钥的本地路径。相反,你给它一个文件的路径:将包含一个公钥;无论如何都不会在本地退出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java