gpt4 book ai didi

jsch - com.jcraft.jsch.JSchException : Auth fail error 错误

转载 作者:行者123 更新时间:2023-12-04 13:49:36 28 4
gpt4 key购买 nike

尝试使用 ssh key 身份验证连接到主机。下面是我的代码:

package com.mkyong.common;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

/**
*
*/
public class UserAuthPubKey {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
JSch jsch = new JSch();

String user = "XXXXXXXX";
String host = "XXXXXXXX.XXXXXXX.com";
int port = 22;
String privateKey = "~/.ssh/WF_OPENSSH.ppk";
String passphrase = "XXXXXXXXXXX";

jsch.addIdentity(privateKey,passphrase);
System.out.println("identity added ");

Session session = jsch.getSession(user, host, port);
System.out.println("session created.");

java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);

session.connect();
System.out.println("session connected.....");

Channel channel = session.openChannel("sftp");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect();
System.out.println("shell channel connected....");

ChannelSftp c = (ChannelSftp) channel;

// String fileName = "test.txt";
// c.put(fileName, "./in/");
// c.exit();
// System.out.println("done");

} catch (Exception e) {
System.err.println(e);
}
}
}

我应该在这里做些什么改变。在调试时,错误似乎发生在 session.connect(); 语句中。我正在使用私钥和密码进行连接。

最佳答案

String privateKey = "~/.ssh/WF_OPENSSH.ppk";

那是 PuTTY 格式的 key 文件吗?它是从 PuTTY key 生成实用程序 puttygen 生成的吗? Jsch 只读取 OpenSSH 格式的 key 文件,不读取 PuTTY 格式的文件。

如果您想使用该 key ,可以使用puttygen 将 key 转换为OpenSSH 格式。参见 this question.

关于jsch - com.jcraft.jsch.JSchException : Auth fail error 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24071188/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com