jsch ssh 连接无法获取 authorized_keys
jsch ssh connection can't get 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 (The system cannot find the path
specified)
它正在我的本地计算机上查找密钥,但未连接到服务器
这些键有什么问题吗?
addIdentity
的参数是 local 指向您的 private 密钥的路径。
相反,您为其提供了一个文件路径:
- 将包含一个 public 键;
- 不退出 本地 无论如何。
我正在尝试通过 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 (The system cannot find the path specified)
它正在我的本地计算机上查找密钥,但未连接到服务器
这些键有什么问题吗?
addIdentity
的参数是 local 指向您的 private 密钥的路径。
相反,您为其提供了一个文件路径:
- 将包含一个 public 键;
- 不退出 本地 无论如何。