【问题标题】:Java SFTP client that takes private key as a string将私钥作为字符串的 Java SFTP 客户端
【发布时间】:2015-11-03 01:50:35
【问题描述】:

Apache Commons 和 JSch 都需要一个私钥文件来建立 SFTP 连接。我正在进行的项目将用于连接到多个 SFTP 服务器。因此,我们不希望部署多个私钥文件,而是将这些密钥作为字符串保存在加密的配置文件中。是否有不需要文件对象作为私钥的 SFTP 库?

【问题讨论】:

    标签: java ssh sftp jsch private-key


    【解决方案1】:

    JSch 有一个 addIdentity method overload 从缓冲区获取密钥:

    public class JSch {
        ...
        public void addIdentity(String name, byte[]prvkey, byte[]pubkey, byte[] passphrase) throws JSchException{
    

    有关实现示例,请参阅JSch: addIdentity from private key stored on hdfs

    另请参阅Loading private key from string or resource in Java JSch in Android app,了解缓冲区中密钥的格式。


    替代方案:

    还有一个addIdentity overload that takes an Identity interface

    public class JSch {
        ...
        public void addIdentity(Identity identity, byte[] passphrase)
    

    只需实现接口即可从您需要的任何地方获取私钥。

    有关示例实现,请参阅 IdentityFile


    或者,将所有密钥存储到IdentityRepository

    public interface IdentityRepository {
        ...
        public boolean add(byte[] identity);
    
    public class JSch {
        ...
        public synchronized IdentityRepository getIdentityRepository()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-07
      • 2019-04-23
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多