将私钥作为字符串的Java SFTP客户端
Apache Commons和JSch都需要私钥文件来建立SFTP连接。 我正在处理的项目将用于连接多个SFTP服务器。 因此,我们不希望部署多个私钥文件,而是将这些密钥保存为加密配置文件中的字符串。 是否存在不需要私钥文件对象的SFTP库?
JSch有一个addIdentity
方法重载 ,从缓冲区获取密钥:
public class JSch { ... public void addIdentity(String name, byte[]prvkey, byte[]pubkey, byte[] passphrase) throws JSchException{
备择方案:
还有一个addIdentity
Identity
接口的addIdentity
重载 :
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()