我们正在尝试使用JSCH从远程服务器下载文件。尝试时,两台服务器之间已经建立了SFTP密钥交换
SFP username@hostname
它在不要求任何密码的情况下成功连接。但在java代码中,当我们尝试使用JSCH连接时,会出现无效私钥异常。
ERROR com.crer.log.debug - com.jcraft.jsch.JSchException: invalid privatekey:
我所做的代码如下所示
JSch jsch = new JSch();
String privateKey = location of the private key on client server
jsch.addIdentity(privateKey);
session = jsch.getSession(stpUser, sftpHost, sftpPort);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
编辑:
im使用的JSCH版本是0.1.54
私钥的开头就像
---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Subject: username
Comment: "2048-bit rsa, username@host, Tue Dec 13 2016 19:25:22 \
-0500"
我甚至尝试将私钥转换为openssh格式,但遇到了一些异常
ssh-keygen -i -f id_rsa_2048_a > id_rsa_2048_a_openssh
Private key -f is unreadable: Failed to open `-f': No such file or directory / Failed to read file `-f'.
Error: Cannot determine the type of the key.
如果我从命令中删除-f,它会工作,但我相信该文件没有正确转换,就像我使用该文件一样,我会得到相同的异常。
这里的任何帮助都会非常有用。不确定出了什么问题。
我最近在Jenkins ssh插件中遇到了这个问题,它也使用JSCH。
JSCH只接受旧的PEM格式私钥。它可以按如下方式生成:
ssh-keygen -m PEM -t rsa
-m PEM
指示ssh keygen以JCSH可以接受的PEM格式输出。
我使用NetBeans7.2运行JDK1.7和Windows7,我使用putty-keygen生成了一个SSH私钥和公钥对(SSH2-2048位)。我没有任何私钥密码。我现在正尝试使用SFTP连接到其中一台主机。但是当我传递私钥(ppk)来设置身份时,代码返回无效私钥错误。我在WinSCP中使用了相同的私钥来连接到相同的主机&它工作得很好。请帮助我解决这个错误。下面是我的代码:
问题内容: 我正在使用netbeans 7.2运行JDK 1.7和Windows 7,我已经使用putty- keygen生成了SSH私钥和公钥对(SSH2-2048位)。我没有私钥密码。我现在正在尝试使用SFTP连接到主机之一。但是,当我通过私钥(ppk)设置身份时,代码将返回无效的私钥错误。我在WinSCP中使用了相同的私钥来连接到相同的主机,并且工作正常。请帮助我解决错误。这是我的代码: 问
问题内容: 我正在使用以下代码在Java应用程序中使用Git。我有一个有效的密钥(一直使用),并且之前使用相同的密钥和git存储库,此特定代码对我有用,但是现在出现以下异常: 无效的私钥:[B @ 59c40796。 在这一行: 我的完整代码: 在线搜索后,我将createDefaultJSch更改为使用pemWriter: 但是仍然会收到 “无效的私钥” 异常。 问题答案: 我也偶然发现了这个问
我使用以下代码在Java应用程序中使用Git。我有一个有效的密钥(一直使用它),并且这个特定的代码在使用相同的密钥和git存储库之前对我有用,但是现在我得到了以下异常: 无效的私钥:[B@59c40796。 在这一行: 我的完整代码: 在线搜索后,我将createDefaultJSch更改为使用pemWriter: 但仍然得到“无效私钥”异常。
我正在尝试建立到Unix服务器的连接,并使用SFTP放置/获取文件。我正在使用JCraft的Jsch 0.1.53和基于RSA令牌的身份验证。没有密码。 我使用IPSwitch软件生成了私钥和公钥,并在Unix服务器中为用户配置了公钥。 Ipswitch的store.ini文件类似于 私钥看起来像, stackoverflow和其他地方有很多例子。我试过了,但点击的是com.jcraft.jsch
我在具有 identityserver4 的经过身份验证的应用程序中遇到此异常: 安全令牌验证签名异常: IDX10503: 签名验证失败。已尝试的密钥: 'Microsoft.IdentityModel.Tokens.RsaSecurityKey , KeyId: '.捕获的异常:“”。标记: '{“alg”:“RS256”,“典型值”:“JWT”}.{“nbf”:1501510053,“exp