我正在尝试使用clear Ant运行git push
命令无需输入密码,但我仍然没有运气。
我设法运行git status
,git commit
。它清楚为什么 - 这个命令不需要任何Web访问。这是我用它的代码:
<macrodef name="git">
<attribute name="command" />
<attribute name="dir" default="" />
<element name="args" optional="true" />
<sequential>
<echo message="${git} @{command}" />
<exec executable="${git}" dir="@{dir}">
<arg value="@{command}" />
<args/>
</exec>
</sequential>
</macrodef>
Http连接总是询问用户密码,虽然我想到了SSH:
<target name="push_sshexec">
<sshexec host="bitbucket.org"
keyfile="${ssh.keyfile}"
username="username"
verbose="true"
trust="true"
command="${git}"/>
</target>
但是在这一点上它失败了:
Authentications that can continue: publickey,keyboard-interactive,password Next authentication method: publickey Disconnecting from bitbucket.org port 22 *pathtoproject*\ant-for-git.xml:61: com.jcraft.jsch.JSchException: Auth fail at org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.execute(SSHExec.java:218)
当我尝试使用GitBash通过SSH进行push
和pull
时,一切都很好。我确定私钥和公钥都是他们应该的(多次检查)。
我知道我在使用Ant连接到我的存储库时遗漏了一些东西,但我看不出它是什么。
我已经阅读了很多信息,但没有找到我需要的信息。
我会很高兴任何建议和解决方案。
P.S。我可以用JGit编写push方法并将其导入到Ant构建中,但我真的想在明确的Ant中创建它。
屏幕截图: Working git push
in cmd.exe but fail when running with Ant