Phabricator git ssh clone失败,出现密码错误

时间:2014-06-05 11:56:17

标签: linux git ssh phabricator

  

root @ jupiter:/ home / jupiter / projects#git clone   ssh://git@demo.jupiter.com/diffusion/TD/transcend.git克隆到   '超越' ...
sudo:抱歉,运行sudo需要密码   
致命:无法从远程存储库中读取。

我已经在manual

之后设置了SSH

我还有导管ping返回正确的消息:

root@demo:~# echo {} | ssh git@demo.jupiter.com conduit conduit.ping
{"result":"demo.jupiter.com","error_code":null,"error_info":null}

以下是我的visudo文件供参考。

Defaults        env_reset

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"



### User privilege specification
root    ALL=(ALL:ALL) ALL
git     ALL=(ALL:ALL) ALL
git ALL=(root) SETENV: NOPASSWD: /usr/local/bin/git-upload-pack, /usr/local/bin/git-receive-pack

### Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

### Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

4 个答案:

答案 0 :(得分:4)

In this answer我发现你应该小心为sudoers文件中的用户定义多个条目。你的第二个条目会覆盖git用户的第一个条目,并且第一个条目没有NOPASSWD:指令。

我也有同样的问题,并且在git用户的sudoers文件中仅使用以下值修复了问题:

git     ALL=(ALL) NOPASSWD: ALL

这表明git用户正在尝试将sudo用于除git-upload-pack和git-receive-pack之外的命令。

也可能是你的PATH中有多个这样的命令,而git用户从另一个位置找到命令。

答案 1 :(得分:1)

从同一页面开始,进一步向下https://secure.phabricator.com/book/phabricator/article/diffusion_hosting/#troubleshooting-ssh

您应该在phabricator服务器上测试这些命令(我已经将其从已记录的那些更改为适合您的环境)

$ su git
$ sudo -E -n -u root -- /usr/local/bin/git-upload-pack 

如果一切正常,您将收到

usage: git upload-pack [--strict] [--timeout=<n>] <dir>

您还确定要设置phd.user吗?这将是&#39; root&#39;在你的情况下

并确保在您的visudo文件中注释掉Defaults requiretty

希望它适合你,因为phabricator是一个很好的工具。

答案 2 :(得分:0)

我刚刚碰到了这个,很快发现这是因为我在设置sudoers文件时没有注意。为了解决这个问题,您可以运行以下命令。

$ which git-upload-pack
$ which git-receive-pack

确保输出的路径与您在sudoers文件中列出的路径相同。不需要密码,但仅限于在这些特定位置运行二进制文件时。

答案 3 :(得分:0)

使用https://secure.phabricator.com/book/phabricator/article/diffusion_hosting/中所述的完全sudoers配置后,我能够修复该错误:

$ vi /etc/sudoers.d/root

root ALL =(root)SETENV:NOPASSWD:ALL