Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Auto Closed
-
2.2.1
-
None
-
None
-
first machine
Maven version: 2.0.7
Java version: 1.5.0_12
OS name: "linux" version: "2.6.18.8-0.5-default" arch: "i386"
OS Distribution: opensuse10.2
ssh server/client: OpenSSH_4.4p1, OpenSSL 0.9.8d 28 Sep 2006
or second machine
Maven version: 2.0.6
Java version: 1.5.0_08
OS name: Linux 2.6.19-gentoo-r5 #5 PREEMPT Mon Jul 2 13:23:01 IST 2007 i686 Mobile AMD Athlon(tm) XP 2600+ AuthenticAMD GNU/Linux
OS Distribution: gentoo
ssh server/client: OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
first machine Maven version: 2.0.7 Java version: 1.5.0_12 OS name: "linux" version: "2.6.18.8-0.5-default" arch: "i386" OS Distribution: opensuse10.2 ssh server/client: OpenSSH_4.4p1, OpenSSL 0.9.8d 28 Sep 2006 or second machine Maven version: 2.0.6 Java version: 1.5.0_08 OS name: Linux 2.6.19-gentoo-r5 #5 PREEMPT Mon Jul 2 13:23:01 IST 2007 i686 Mobile AMD Athlon(tm) XP 2600+ AuthenticAMD GNU/Linux OS Distribution: gentoo ssh server/client: OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
Description
after I had again and again problems deploying on remote repositories on linux and after I colleague of mine also struggled with this, I did some testing. the tests I made on two machines and both produces the same results. I used both scp and scpexe as well login and public key authentication. this gives already quite a matrix. than I discovered that the behaviour is different if the private key has a passphrase or not. so I also include these two cases.
the whole test just deploys a pom artifact on localhost in the tmp directory.
so here are the results and some conclusions. the pom.xml and settings.xml I used are attached.
=============================================================================== openssh server default config public-key: no passphrase, removed public-key and authorized_keys for login tests =============================================================================== mvn deploy -f pom.scp.xml -s settings-login.xml . . . [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: Authentication failed: Cannot connect. Reason: Auth fail mvn deploy -f pom.scpexe.xml -s settings-login.xml . . . [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: Error executing command for transfer Exit code 255 - Permission denied (publickey,keyboard-interactive). mvn deploy -f pom.scp.xml -s settings-publickey.xml . . . [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ mvn deploy -f pom.scpexe.xml -s settings-publickey.xml . . . [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ =============================================================================== openssh server with "PasswordAuthentication yes" public-key: no passphrase, removed public-key and authorized_keys for login tests =============================================================================== mvn deploy -f pom.scp.xml -s settings-login.xml . . . [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ mvn deploy -f pom.scpexe.xml -s settings-login.xml . . . [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: Error executing command for transfer Exit code 255 - Permission denied (publickey,password,keyboard-interactive). mvn deploy -f pom.scp.xml -s settings-publickey.xml . . . [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ mvn deploy -f pom.scpexe.xml -s settings-publickey.xml . . . [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ =============================================================================== openssh server with default config public-key: with passphrase, removed public-key and authorized_keys for login tests =============================================================================== mvn deploy -f pom.scp.xml -s settings-login.xml . . . [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: Authentication failed: Cannot connect. Reason: Auth fail mvn deploy -f pom.scpexe.xml -s settings-login.xml . . . [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: Error executing command for transfer Exit code 255 - Permission denied (publickey,keyboard-interactive). mvn deploy -f pom.scp.xml -s settings-publickey.xml . . . [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ mvn deploy -f pom.scpexe.xml -s settings-publickey.xml . . . [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: Error executing command for transfer Exit code 255 - Permission denied (publickey,keyboard-interactive). =============================================================================== openssh server with "PasswordAuthentication yes" public-key: with passphrase, removed public-key and authorized_keys for login tests =============================================================================== mvn deploy -f pom.scp.xml -s settings-login.xml . . . [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ mvn deploy -f pom.scpexe.xml -s settings-login.xml . . . [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: Error executing command for transfer Exit code 255 - Permission denied (publickey,keyboard-interactive). mvn deploy -f pom.scp.xml -s settings-publickey.xml . . . [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ mvn deploy -f pom.scpexe.xml -s settings-publickey.xml . . . [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error deploying artifact: Error executing command for transfer Exit code 255 - Permission denied (publickey,keyboard-interactive).
====================
conclusions
====================
- scpexe with username/password never worked
- scpexe with public key works only when the private key has no passphrase, though the passphrase is given in settings.xml
- login with username/password works only with scp against an ssh server with "PasswordAuthentication yes" configured
- public key with scp works with any configuration
- the two OS/java build/maven version machine behave exactly the same, so I
conclude the problems lies somewhere within maven or the deploy plugin or
the wagon ssh/sshexternal