我正在尝试编写一个 Ant 目标来克隆 git 存储库。以下是蚂蚁目标。这里的组织是公司的名称,组是组名称,存储库是存储库的名称。
<target name ="clone">
<sshexec host="github.ORGANIZATION.com"
username="git"
keyfile="${user.home}/.ssh/id_rsa"
passphrase="pujain"
trust="true"
command="git clone git@github.ORGANIZATION.com:GROUP/REPOSITORY.git"/>
</target>
我收到以下异常:
[sshexec] 您似乎正在使用 ssh 克隆 git://URL。
[sshexec] 确保未设置core.gitProxy config选项和
[sshexec] GIT_PROXY_COMMAND环境变量。
我能够从cmd执行相同的命令。
正确的 SSH URL 将是(对于私有自托管 GitLab 服务器(:
git@github.ORGANIZATION.com:GROUPNAME/REPOSITORY.git
^^^^^^^^^^
存储库名称前应有一个":"以及组或个人帐户。
您的sshexec taks
正在尝试做的是:
- 连接到主机"
git@github.ORGANIZATION.com:REPOSITORY.git
"(这没有意义( - 连接到远程服务器后,执行
git clone
。
如果您的脚本需要克隆 GitLab 存储库,您只需要一个执行任务,而不是 SSH 执行任务。
<exec executable="git" dir="D:" failonerror="true">
<arg line="clone git@github.ORGANIZATION.com:REPOSITORY.git dest" />
</exec>
但这不适用于受密码保护的私钥(除非它首先加载到 ssh-agent 中(。
最好使用专为该用途制作的只读部署密钥,而不使用密码。
我认为这不属于主机名?:REPOSITORY.git
?
也许这会起作用?
<target name ="clone">
<sshexec host="github.ORGANIZATION.com"
username="user"
password="pass"
passphrase="para"
trust="true"
command="git clone git@github.ORGANIZATION.com:REPOSITORY.git D:/dest"
/>
</target>
只是为了澄清事情,因此,您希望以用户用户身份连接到ssh服务器github.ORGANIZATION.com,然后在该服务器上运行命令git clone whatever D:/dest
。是吗?