【问题标题】:How to do an scp in ant file for an ipv6 address如何在ant文件中为ipv6地址执行scp
【发布时间】:2015-10-20 18:45:37
【问题描述】:

我正在尝试使用 apache-ant 安全复制 (scp) 文件。我正在使用 JSCH 库来做到这一点。 目前,我能够使用 ant 任务为 ipv4 安全地复制文件,其中 scp 无法获得 ipv6 地址。

以下是我的 ant 文件:

CLI 输出:

$> ant  config-open-api -lib ~/dev/apache-ant-1.9.5/lib/jsch-0.1.50.jar -Dmachine.ip=fd01:0:101:2606:0:eff:fe57:9336 -Dmachine.root.username=root -Dmachine.root.password=p@ssw0rd

    vboda-mbpro15:functional vboda$ ~/dev/apache-ant-1.9.5/bin/ant  config-open-api -lib ~/dev/apache-ant-1.9.5/lib/jsch-0.1.50.jar -Dvcopssuitevm.ip=fd01:0:101:2606:0:eff:fe57:9336 -Dvcopssuitevm.root.username=root -Dvcopssuitevm.root.password=vmware
    Buildfile: /Users/vboda/perforce/depot/om/main/qe/platform/functional/build.xml

    config-open-api:
         [echo] this is echo!
          [scp] Connecting to fd01:22

    BUILD FAILED
    /Users/vboda/perforce/depot/om/main/qe/platform/functional/build.xml:4: com.jcraft.jsch.JSchException: java.net.UnknownHostException: fd01
        at com.jcraft.jsch.Util.createSocket(Util.java:344)
        at com.jcraft.jsch.Session.connect(Session.java:215)
        at com.jcraft.jsch.Session.connect(Session.java:183)
        at org.apache.tools.ant.taskdefs.optional.ssh.SSHBase.openSession(SSHBase.java:225)
        at org.apache.tools.ant.taskdefs.optional.ssh.Scp.upload(Scp.java:348)
        at org.apache.tools.ant.taskdefs.optional.ssh.Scp.execute(Scp.java:244)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
        at org.apache.tools.ant.Main.runBuild(Main.java:853)
        at org.apache.tools.ant.Main.startAnt(Main.java:235)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
    Caused by: java.net.UnknownHostException: fd01
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at java.net.Socket.connect(Socket.java:538)
        at java.net.Socket.<init>(Socket.java:434)
        at java.net.Socket.<init>(Socket.java:211)
        at com.jcraft.jsch.Util.createSocket(Util.java:338)

我一直在网上搜索解决方案,但找不到任何解决方案。如果有人可以让我知道可能的解决方案来解决它,我真的很感激

【问题讨论】:

    标签: java linux ant ssh scp


    【解决方案1】:

    ssh 的手册页状态:

    可以通过将地址括在方括号中来指定 IPv6 地址。

    但我不知道如何在你的 java 魔法中推动它......

    【讨论】:

    • 堆栈跟踪显示 ant 使用的是 jsch 库,而不是命令行实用程序。
    【解决方案2】:

    ipv6 主机名的 ant scp 任务中似乎存在错误。 ipv6 的主机名解析不正确。参考错误https://bz.apache.org/bugzilla/show_bug.cgi?id=59160

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      相关资源
      最近更新 更多