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

root@jupiter:/home/jupiter/projects# git clone
ssh://git@demo.jupiter.com/diffusion/TD/transcend.git Cloning into
‘transcend’…
sudo: sorry, a password is required to run sudo

fatal: Could not read from remote repository.

我在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

解决方法:

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

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

git     ALL=(ALL) NOPASSWD: ALL

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

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

上一篇:Git + Phabricator日常的使用方法


下一篇:搭配Phabricator服务端