JSCH SSH连接无法获得authorized_keys

时间:2019-04-17 15:08:19

标签: java ssh jsch

我正在尝试通过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(系统找不到路径   指定)

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

这些键我怎么了?

1 个答案:

答案 0 :(得分:1)

addIdentity的参数是私有键的本地路径。

相反,您为它提供了指向以下文件的路径:

  1. 将包含一个公开密钥;
  2. 无论如何都不会在本地退出