муравей <scp> поддержка ssh-agent </scp>

933
Michael Potter

У меня есть существующий файл build.properties, который использует scp следующим образом:

<scp todir="$@$:@" keyfile="$" passphrase="$" trust="yes" verbose="@"> <filestocopy /> </scp> 

Документация для этой команды находится здесь: https://ant.apache.org/manual/Tasks/scp.html

Я хотел бы перейти к ssh-agent и исключить парольную фразу. Некоторые люди, которые используют это, настроили свой ssh, чтобы НЕ использовать пароли, и оставляли парольную фразу пустой.

Один из вариантов - использовать http://www.jcraft.com/jsch-agent-proxy/, но я нашел этот 1,5-летний вопрос, который говорит, что он еще не поддерживается:

https://stackoverflow.com/questions/19684309/can-ant-using-ssh-encrypted-private-key-from-pageant

Это используется во многих ant-скриптах, поэтому мне нужен план, который позволил бы мне использовать ssh-agent, в то же время позволяя другим продолжать свой метод.

Я на Windows 7 пытаюсь scp файлы в Linux. У меня есть ssh-агент, совместимый с Pageant: KeePass2 / KeeAgent.

5

1 ответ на вопрос

2
strangefeatures

Not exactly what you asked for, but I've solved my similar problem (within Maven Antrun plugin on OS X) by using the exec task instead. So you might use, for example, something like this to replace what you have:

<exec executable="pscp"> <arg value="dirtocopy"/> <arg value="-r"/> <arg value="-i"/> <arg value="$"/> <arg value="$@$:@"/> </exec> 

It's not ideal of course. For cross-platform support you'd require everyone to have an SCP implementation already installed, and you'd need conditionals to choose between scp on *nix and pscp or whatever on Windows.

However it has some advantages – ssh-agent integration just works (as per your original request), and you probably don't need the -i argument I've included for completeness.

Caveat: I haven't actually tested this with the PuTTY suite or on Windows

Похожие вопросы