2016-12-07 14 views
0

jsch私はaddIdentity()を呼び出して秘密鍵を追加し、getSession()を呼び出してSSHトンネルを開きます。jschでSSHトンネルを開くときに秘密鍵が無効になる

このコードをWindowsマシンでローカルに実行すると、トンネルのオープンが機能しています。当社のCIで同じ秘密鍵と同じコード次のエラーが発生したことを実行しているときに

は、しかし:エラーの可能性があり何

PuTTY-User-Key-File-2: ssh-rsa 
Encryption: none 
Comment: imported-openssh-key 
Public-Lines: 6 
XXXXXXXXXXXXXXXXXXX 
Private-Lines: 14 
XXXXXXXXXXXXXXXXXX 
Private-MAC: XXXXXXXXXXXXXXXX 

2016-12-07 01:01:32 ERROR SSHConnector:25 - invalid privatekey: [[email protected] 
com.jcraft.jsch.JSchException: invalid privatekey: [[email protected] 
    at com.jcraft.jsch.KeyPair.load(KeyPair.java:747) 
    at com.jcraft.jsch.KeyPair.load(KeyPair.java:561) 
    at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40) 
    at com.jcraft.jsch.JSch.addIdentity(JSch.java:408) 
    at com.jcraft.jsch.JSch.addIdentity(JSch.java:389) 

秘密鍵は次のようになりますここに?

答えて

0

jSChはPuTTYキーフォーマットではなく、標準のPEMまたはOpenSSHフォーマットをサポートしていると推測されます。 PPTをPuTTYgenのPEMに変換することができ、問題を解決するはずです。

+1

少なくとも0.1.53(これは削除されるとは思えませんが)PPK(OpenSSL PEMs =非newfmt OpenSSHといくつかの他)に加えて** WindowsタイプのEOL **(CR LF)。ハロルド:エディタやFTP TYPE Aに貼り付けるなど、EOLを変更できる方法でPPKを影響を受けるシステムにコピーしましたか? –

+0

jschは実際にPPKファイルをサポートしていますが、@ dave_thompson_085が指摘するように、CRLFでマークされた行末を持つ必要があります。 Dave、あなたのコメントを答えに変換してください。正しいものとしてチェックしてください。 –

関連する問題