JSch 如何与 PuTTY 私钥一起使用

use*_*480 3 putty jsch public-key private-key

我正在尝试将 JSch 与私钥配置一起使用。我已使用 PuTTYgen 生成了公钥和私钥,但不确定如何处理这两个文件。

哪个密钥(公共/私有)需要传输到服务器?

Abh*_*arg 5

使用 PuTTy 私钥 (.ppk) 连接的代码片段

JSch jsch=new JSch();
jsch.setKnownHosts("~\.ssh\know_hosts");
jsch.addIdentity("~\sshkey.ppk");
Session session=jsch.getSession("ec2-user", "54.12.11.90", 22);
session.setConfig("PreferredAuthentications", "publickey");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
Channel channel=session.openChannel("shell");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect(3*1000);
Run Code Online (Sandbox Code Playgroud)

曾使用过Jsch 0.1.54版本

        <dependency>
            <groupId>com.jcraft</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.54</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

  • 请不要建议任何人在没有解释安全后果的情况下使用“StrictHostKeyChecking=no”。这样做您将失去针对 [MIMT 攻击](https://en.wikipedia.org/wiki/Man-in-the-middle_attack) 的保护! (6认同)