Задача Ant SCP не работает - где я могу использовать scgwin для scp - PullRequest
4 голосов
/ 21 сентября 2011

Пожалуйста, предоставьте ваш эксперт для решения проблемы, с которой я сталкиваюсь на работе.

  1. Задача Ant SCP не работает - где я могу использовать scgwin с помощью scp.

  2. Локальная среда: 64-битная версия Windows 7, Jdk 1.6.0.24, Ant-1.8.2 (с извлечением необязательных зависимостей ant), maven 2 (плагин usign ant run), jsch-0.1.44 Удаленная среда: VM Labmanager 4.0, Windows Server 2008 - R2, SSH-2.0-OpenSSH_5.8, JDK 1.6.0.24

  3. Я установил аутентификацию пароля на yes и перезапустил sshd на удаленном хосте.

  4. Цель Maven заключается в следующем. (кстати, я выполнил ту же цель ANT, поэтому Ant и Maven дают одинаковый результат с jsch-0.1.44 и jsch-0.1.42)

    <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <id>copy-installer</id>
            <phase>process-resources</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <scp file="readme.txt"  todir="devlocal@dev-jboss02.com:/home/devlocal"     password="password" trust="true"    verbose="true"  port="22"/>
                </target>
            </configuration>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>com.jcraft</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.42</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-jsch</artifactId>
            <version>1.8.2</version>
        </dependency>
    </dependencies>
    

  5. Трассировка стека выглядит следующим образом:

    $ mvn -e
    + Error stacktraces are turned on.
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    ...
    [INFO] Executing tasks
    
    main:
          [scp] Connecting to dev-jboss02.com:22
          [scp] Connecting to dev-jboss02.com port 22
          [scp] Connection established
          [scp] Remote version string: SSH-2.0-OpenSSH_5.8
          [scp] Local version string: SSH-2.0-JSCH-0.1.38
          [scp] CheckCiphers: aes256-cbc,aes192-cbc,aes128-cbc
          [scp] aes256-cbc is not available.
          [scp] aes192-cbc is not available.
          [scp] SSH_MSG_KEXINIT sent
          [scp] SSH_MSG_KEXINIT received
          [scp] kex: server->client aes128-cbc hmac-md5 none
          [scp] kex: client->server aes128-cbc hmac-md5 none
          [scp] SSH_MSG_KEXDH_INIT sent
          [scp] expecting SSH_MSG_KEXDH_REPLY
          [scp] ssh_rsa_verify: signature true
          [scp] Permanently added 'dev-jboss02.com' (RSA) to the list of known hosts.
          [scp] SSH_MSG_NEWKEYS sent
          [scp] SSH_MSG_NEWKEYS received
          [scp] SSH_MSG_SERVICE_REQUEST sent
          [scp] SSH_MSG_SERVICE_ACCEPT received
          [scp] Authentications that can continue: publickey,keyboard-interactive,password
          [scp] Next authentication method: publickey
          [scp] Authentications that can continue: keyboard-interactive,password
          [scp] Next authentication method: keyboard-interactive
          [scp] Authentications that can continue: password
          [scp] Next authentication method: password
          [scp] Disconnecting from dev-jboss02.com port 22
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] An Ant BuildException has occured: com.jcraft.jsch.JSchException: Auth fail
    
    [INFO] ------------------------------------------------------------------------
    [INFO] Trace
    org.apache.maven.lifecycle.LifecycleExecutionException: An Ant BuildException has occured: com.jcraft.jsch.JSchException: Auth fail
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
            at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
            at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
            at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
            at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
            at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
            at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
            at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
    Caused by: org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occured: com.jcraft.jsch.JSchException: Auth fa
    il
            at org.apache.maven.plugin.antrun.AntRunMojo.execute(AntRunMojo.java:283)
            at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
            ... 17 more
    Caused by: C:workspace\trunk\pix-test-automation\target\antrun\build-main.xml:4: com.jcraft.jsch.JSchException: Aut
    h fail
            at org.apache.tools.ant.taskdefs.optional.ssh.Scp.execute(Scp.java:245)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
            at org.apache.tools.ant.Task.perform(Task.java:348) 
    
  6. Также в журнале sshd я вижу, что клиент использует JSCH-0.1.38, где клиент использует jsch-0.1.44, у меня нет JSCH-0.1.38 ни в ant lib, ни в mvn репо в любом месте ..

    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3224: debug1: fd 5 clearing O_NONBLOCK
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3224: debug1: Forked child 3364.
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3364: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3364: debug1: inetd sockets after dupping: 3, 3
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3364: Connection from **.**.**.** port 44082
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3364: debug1: Client protocol version 2.0; client software version JSCH-0.1.38
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3364: debug1: no match: JSCH-0.1.38
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3364: debug1: Enabling compatibility mode for protocol 2.0
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3364: debug1: Local version string SSH-2.0-OpenSSH_5.8
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: SSH2_MSG_KEXINIT sent
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: SSH2_MSG_KEXINIT received
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: kex: client->server aes128-cbc hmac-md5 none
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: kex: server->client aes128-cbc hmac-md5 none
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: expecting SSH2_MSG_KEXDH_INIT
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: SSH2_MSG_NEWKEYS sent
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: expecting SSH2_MSG_NEWKEYS
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: SSH2_MSG_NEWKEYS received
    Sep 21 13:45:46 DEV-JBOSS02 sshd: PID 3924: debug1: KEX done
    Sep 21 13:45:47 DEV-JBOSS02 sshd: PID 3924: debug1: userauth-request for user devlocal service ssh-connection method none
    Sep 21 13:45:47 DEV-JBOSS02 sshd: PID 3924: debug1: attempt 0 failures 0
    Sep 21 13:45:49 DEV-JBOSS02 sshd: PID 3364: reverse mapping checking getaddrinfo for sjcgnaval1 [10.32.102.33] failed - POSSIBLE BREAK-IN ATTEMPT!
    
  7. Я стремлюсь получить аутентификацию по паролю, а не по ключу, поскольку это проект автоматизации, в котором образ виртуальной машины создается для каждого запуска.

С уважением, gnaval

Ответы [ 2 ]

1 голос
/ 06 августа 2015

Установили ли вы библиотеку JSch, где ее может увидеть ваша установка ant? Документация по задаче Ant scp четко указывает, что это необходимо:

Примечание: эта задача зависит от внешних библиотек, не включенных в Ant распределение. См. Зависимости библиотеки для получения дополнительной информации.

Там вы найдете, что

jsch.jar 0,1.50 или более поздняя версия

требуется для задания SCP.

JSCh доступен здесь :

0 голосов
/ 12 мая 2017

Попробуйте использовать Maven 3, Maven 2 встраивает jsch 0.1.38 и имеет приоритет над версией, указанной в зависимостях плагина.Это было решено в Maven 3.

...