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

Camel SFTP组件-SSH私钥URI与privateKeyFile一起工作,与privateKey不一起工作

刘狐若
2023-03-14
from("direct:download")
        .pollEnrich()
        .simple("sftp://my.host:22/folder/?username=foo&fileName=${header.CamelFileName}
        &privateKeyFile=src/main/resources/privateSSHKey")
        .to("file://state/downloaded");
from("direct:download")
        .pollEnrich()
        .simple("sftp://my.host:22/folder/?username=foo&fileName=${header.CamelFileName}
     &privateKey=" + URLEncoder.encode(new String(sshPrivateKey), "UTF-8"))
        .to("file://state/downloaded");

我是不是漏掉了什么?我很确定编码sshPrivateKey字节[]是一种方法(如果我不这样做,JSCH会抱怨错误的密钥),但我不确定我还缺少什么?

共有1个答案

袁鸿畅
2023-03-14
java prettyprint-override">String privateKeyString = Files.readString(Path.of("/.ssh/private_key_rsa"), StandardCharsets.UTF_8);
Byte[] privateKeyAsByteArray = ArrayUtils.toObject(privateKeyString.getBytes());

from("file://tmp")
.to(sftp("localhost")
        .username("test")
        .privateKey(privateKeyAsByteArray));
 类似资料:
  • 在我的Laravel应用程序中,我需要定期使用Guzzle将数据发送到API。 API使用承载令牌进行身份验证,并请求和接受原始JSON。为了进行测试,我使用Postman访问了API,一切都工作得很好。

  • 我想知道我是否能做这样的事情。假设我有一个数字流1-20。我想利用一个特性,比如drop 3(我想用Java术语来说是限制还是跳过?)并产生一个流,即数字流: 1-20、4-20、7-20等 然后可能平坦地将这些全部映射到一条溪流中。我尝试了使用Stream.iterate的各种组合,主要是从流生成流,但我一直收到一个IllegalStateExcema,说流已经操作或关闭。 例如,人们可能期望这

  • 我注意到我的机器人没有设置RichPresence,就像我今天看它一样。我最后一次检查它是在星期三,代码也在那里工作。所以我今天再次执行它,并且RichPresence没有像往常一样重新设置。现在我认为不和谐会改变它的界面。 现在,我在我的项目中使用了最新的JDA版本,并对代码进行了修改,使数据对象成为JSONObject,但它仍然无法工作。作为第二个,我试图使我的“Spielst”对象成为Ric

  • 根据它的Javadoc,将生成,其中的第一个值是subscribe和第一个next信号之间的经过时间。 以下测试不起作用 它将抛出异常: 我原以为经过的时间至少是1000ms,但结果只有11ms。

  • 我试图在谷歌App Engine上托管这个静态网站,但我被困在这个过程的关键部分: 提供任何帮助,谢谢

  • 因此,如果我不能重写字符串作为它的最终结果(因此阻止我重写它的compareTo()方法来调用compareToIgnoreCase()),那么还有其他方法可以实现吗? 任何帮助都是非常感谢的。