远程repo上的git push(over ssh)hook请求密码,即使它不应该

时间:2015-09-15 08:55:42

标签: git ssh

我想要实现的是通过ssh在不同机器上自动单向同步2个裸存储库。

从一台裸仓库[CENTRAL机器]推送到另一台机器[RE​​DMINE机器]上的另一台裸仓库:

  1. 在工作站[WS]上我(或我的同事)推送到中央服务器上的裸仓库[CENTRAL]
  2. 触发更新后挂钩[CENTRAL],它应该git push到用户'lamparna'下的另一个裸仓[REDMINE](可以使用密钥访问REDMINE) )
  3. 复杂的是,我推动了WS - > CENTRAL为'foton',并且必须以'lamparna'(CENTRAL - > REDMINE)完成连接推送。

    更新后挂钩[在CENTRAL上]:

    #!/usr/bin/env ruby
    # post-receive
    `sudo -u lamparna git push --mirror ssh://lamparna@REDMINE/home/lamparna/repos/git/jine/lamparna.git`
    

    我已经管理好了#34;模仿推送" (根据http://krisjordan.com/essays/setting-up-push-to-deploy-with-git):

    上的

    ssh CENTRAL  'cd /opt/git_repos/jine/lamparna.git && echo "$FROM_COMIT_HASH $TO_COMIT_HASH" | /opt/git_repos/jine/lamparna.git/hooks/post-update'
    

    这将正确运行,无需密码。 但是当我做一个真正的推动:git push,然后推动CENTRAL,钩子被触发,但结束于:

     remote: sudo: no tty present and no askpass program specified
    

    周围环境: 在CENTRALL上,我允许组sitd的所有用户在没有密码的情况下以lamparna运行git:

    %sitd ALL=(lamparna) NOPASSWD: /usr/bin/git_push_to_lamparna.sh, /usr/bin/git
    

0 个答案:

没有答案