2

Java で RSA 公開鍵ファイルと秘密鍵ファイルを読み込もうとしています。

私の RSA 公開鍵と秘密鍵は、PuttyGen を使用して生成されます。(SSH-2 RSA、1024 ビット)

ファイルの読み取りに使用しているコードは次のとおりです。

//public key
pubkeyBytes = getBytesFromFile(new File(pubKeyfileName));
KeySpec pubSpec = new X509EncodedKeySpec(pubkeyBytes);
RSAPublicKey pubKey =(RSAPublicKey) rsakeyFactory.generatePublic(pubSpec);

//private key
privkeyBytes = getBytesFromFile(new File(privKeyfileName));
PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(privkeyBytes);
PrivateKey privKey = rsakeyFactory.generatePrivate(privSpec);

それはスローします:

java.security.InvalidKeyException: invalid key format
    at sun.security.x509.X509Key.decode(Unknown Source)
4

1 に答える 1

6

Putty は独自のキー形式を使用します。Putty キーを OpenSSH 形式にエクスポートする必要があります - How to convert SSH keypairs generated using PuttyGen(Windows) into key-pairs used by ssh-agent and KeyChain(Linux) を参照してください。

次に、OpenSSH キーを pkcs8 形式に変換する必要があります。 How to Load RSA Private Key From File を参照してください。これには、openssh の Cygwin バージョンが問題なく動作します。実行する Unix システムを探す必要はありませんopenssh

于 2012-09-30T17:02:12.867 に答える