当前位置: 首页 > 知识库问答 >
问题:

JCraft: SCP使用没有密码的私钥

钦英发
2023-03-14

我试图scp使用2 linux服务器之间的密钥对。我想跟着http://sthen.blogspot.in/2008/03/sftp-i-java-with-jsch-using-private-key.html

我能够在linux服务器之间创建scp文件,但当我执行代码时,会收到错误com。jcraft。jsch。JSchException:UnknownHostKey。知道我做错了什么吗。

过程:我已经在客户端生成了无密码的RSA密钥,并在目的地复制了公钥。现在正在尝试使用JCraft Library将文件从客户端映射到目标

我正在使用最新的JARX.51

共有1个答案

何海
2023-03-14

您的客户端根本没有服务器端的已知主机密钥。有两件事可以做:要么告诉JSch根本不要检查主机密钥,要么提供一个有效密钥。

在这种情况下,您必须提供一个配置,将选项strichHostKeyChecking设置为no

...
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
Hashtable<String, String> config = new Hashtable<String, String>();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
...

在这种情况下,提供一个带有主机密钥的文件。该文件是标准的OpenSSH已知主机密钥文件,可以在Linux或cygwin上使用标准的ssh命令创建和更新。

...
JSch jsch = new JSch();
jsch.setKnownHosts(knownHostsFilename);
Session session = jsch.getSession(user, host, port);
Hashtable<String, String> config = new Hashtable<String, String>();
config.put("StrictHostKeyChecking", "yes");
session.setConfig(config);
session.connect();
...

我个人的建议是使用第二种方法,因为已知的主机密钥是ssh的附加安全特性,如果没有必要,您不应该放弃。

附言:你不应该只使用超过6年的文档。

 类似资料:
  • 我想解密使用RSA公钥加密的1024位数据。我有权访问 我没有访问私钥指数的权限。没有RSA private exponent和所有这些可用的API,有没有办法解密数据?我正在使用openssl进行RSA操作。我听说有了中文提示therem,我们只需要p、q、指数1、指数2和系数就可以进行RSA解密。但我正在寻找openssl中的API。在openssl中有没有什么有用的方法可以在没有私有指数的情

  • 我正在学习Spring安全。我使用在将用户密码持久化到数据库之前对其进行编码 代码: 然后在身份验证期间也使用它,用户得到了预期的身份验证。 然后,从方法中删除了,使用已编码密码的用户仍然能够成功地获得身份验证。 然后,我从和方法中删除了password encoder,并将持久化到数据库中(即没有密码编码),并尝试访问经过身份验证的页面,但我得到了, 但具有编码密码的用户仍然得到了身份验证,即使

  • 我已使用全局配置在我的系统上配置了帐户 A,我可以从那里克隆我的所有存储库。 现在我不想更改配置,我想用我的用户名和密码克隆并执行帐户B的所有操作。我该怎么做? 我尝试过: 但没有成功。

  • 问题内容: 我想用不带sudo密码的用户sa1运行ansible: 第一次可以: 第二次失败: 请帮忙! 问题答案: 这不是您的服务器的配置。确保允许sudo的用户使用并且无需密码即可使用。 要登录到服务器 使用以下命令打开sudoers文件 确保您有这样的一行: 用您的用户替换 保存文件 您可以通过运行以下命令从服务器本身进行尝试: 如果这可行,那么它也应该可以正常运行。

  • 我已经用java代码生成了一个私钥,并将其保存为: 无法加载私钥9964:error:0d0680a8:asn1编码例程:asn1_check_tlen:错误标记:.\crypto\asn1\tasn_dec。c:1319:9964:error:0d06c03a:asn1编码例程:asn1_d2i_ex_primitial:nested asn1错误或:.\crypto\asn1\tasn_dec

  • 问题内容: 我有一个加密的私钥,并且知道密码。 我需要使用Java库对其进行解密。 不过,我宁愿不要使用BouncyCastle,除非没有其他选择。根据以前的经验,有太多更改,没有足够的文档。 私钥的格式如下: 我相信关键数据是Base64编码的,因为我看到的是64个字符。 我尝试了以下解密密钥: 我得到这个例外 我是否将正确的参数传递给构造函数? 我该如何工作? 我尝试了Ericsonn的建议,