2

POM に次のようなセクションがあります。

<scm>
    <connection>scm:cvs:ext:myhostname:/cvsroot/repo:module_name</connection>
</scm>

私は通常、この cvs サーバーに対する認証に publickey auth を使用しますが、パスワードも受け入れる必要があります。

mvn scm:updatemvn release:prepare、またはこの scm への接続を伴うその他の Maven ゴールを実行しようとすると、次のエラーが発生します。

[INFO] Executing: cmd.exe /X /C "cvs -z3 -f -q update -d"
[INFO] Working directory: C:\Documents and Settings\matt\workspace\projectname
org.netbeans.lib.cvsclient.connection.AuthenticationException: Cannot authenticate. Reason: Publickey authentication failed.
    at org.apache.maven.scm.provider.cvslib.cvsjava.util.ExtConnection.open(ExtConnection.java:136)
    at org.apache.maven.scm.provider.cvslib.cvsjava.util.CvsConnection.connect(CvsConnection.java:166)
    at org.apache.maven.scm.provider.cvslib.cvsjava.util.CvsConnection.processCommand(CvsConnection.java:498)
    at org.apache.maven.scm.provider.cvslib.cvsjava.command.update.CvsJavaUpdateCommand.executeCvsCommand(CvsJavaUpdateCommand.java:53)
    at org.apache.maven.scm.provider.cvslib.command.update.AbstractCvsUpdateCommand.executeUpdateCommand(AbstractCvsUpdateCommand.java:78)
    at org.apache.maven.scm.command.update.AbstractUpdateCommand.executeCommand(AbstractUpdateCommand.java:63)
    at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:59)
    at org.apache.maven.scm.provider.cvslib.AbstractCvsScmProvider.executeCommand(AbstractCvsScmProvider.java:750)
    at org.apache.maven.scm.provider.cvslib.AbstractCvsScmProvider.update(AbstractCvsScmProvider.java:348)
    at org.apache.maven.scm.provider.AbstractScmProvider.update(AbstractScmProvider.java:821)
    at org.apache.maven.scm.provider.AbstractScmProvider.update(AbstractScmProvider.java:770)
    at org.apache.maven.scm.manager.AbstractScmManager.update(AbstractScmManager.java:526)
    at org.apache.maven.scm.plugin.UpdateMojo.execute(UpdateMojo.java:89)

(さらに多くのスタックトレース....)

そして、スタックトレースのさらに下:

Caused by: java.io.IOException: Decrypted PEM has wrong padding, did you specify the correct password?
    at ch.ethz.ssh2.crypto.PEMDecoder.removePadding(PEMDecoder.java:109)
    at ch.ethz.ssh2.crypto.PEMDecoder.decryptPEM(PEMDecoder.java:286)
    at ch.ethz.ssh2.crypto.PEMDecoder.decode(PEMDecoder.java:319)

に続く:

[ERROR] Provider message:
[ERROR] The cvs command failed.
[ERROR] Command output:

私はこれをWindowsマシンで実行しています.cvs実行可能ファイルはありませんPATH. 私の公開鍵は の下$HOME/.sshにありますが、cvs/maven/scm がここにロードしているようには見えません。キーフレーズの入力を求められていないからです。

だから私の質問は...私の公開鍵がどこにインストールされているか、または実際にそれをどのように使用するかを認識させるために、MavenまたはSCM / CVSプロバイダーで何か特別なことをする必要がありますか? 現在、パスフレーズの入力を求められないため、使用されているようには見えません。

4

2 に答える 2

0

mavenを使用する前に、コンソールからcvs + ssh loginコマンドを実行することでこれを解決しました。これにより、自動ログインが機能するように、マジック ナンバーが $home/.ssh に追加されました。

これが自己署名証明書によるものである場合は、自己署名証明書をクライアントに追加する方法についてInstallCertコードを確認してください。または、デフォルトの X509 Trust コードを置き換える方法のこの例。

于 2009-06-11T20:14:17.953 に答える