eechpeech
eechpeech

Reputation: 285

JSch to add private key from a string

I have the contents of the key pair file for SFTP as a string. I need to use JSch to add the contents, but addIdentity only accepts a file path. Is there anyway I can do this?

I see that the KeyPair class has a method -

KeyPair load(JSch jsch, byte[] bytes, byte[] bytes1)

I'm not sure what this does.

Upvotes: 12

Views: 19805

Answers (2)

rumman0786
rumman0786

Reputation: 1310

You can simply do the following

String privateKeyValue = "You private Key String";
jsch.addIdentity(null, privateKeyValue.getBytes(), null, null);

Upvotes: 1

Martin Prikryl
Martin Prikryl

Reputation: 202292

There is an addIdentity overload that takes the key from a buffer:

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

See also Java SFTP client that takes private key as a string.

For an example of implementation, see JSch: addIdentity from private key stored on hdfs.

See also Loading private key from string or resource in Java JSch in Android app for a format of the key in the buffers.

Upvotes: 14

Related Questions