【发布时间】:2017-05-15 20:45:53
【问题描述】:
在向远程机器上的git repo推送一些更改后,我正在尝试触发可执行文件“post-receive” >。此文件中有一些需要提升权限的命令,例如:
sudo -S rm -f $HOME/.build
sudo -S rm -f $HOME/Packages
我已经添加了一个远程到我的本地仓库:
git remote add live ssh://dev@ip/home/dev/app/.git
所以我可以将更改推送到我的远程仓库,如下所示:
git push live master
每当我推送时,都会执行“post-receive”文件。
但是,在“post-receive”文件中要求 sudo 命令的密码。
remote: [sudo] password for dev: Sorry, try again.
remote: [sudo] password for dev:
remote: sudo: 1 incorrect password attempt
remote: [sudo] password for dev:
- 如果我没有通过 ssh 密钥配置我的访问权限并指定我的身份文件,就会发生意外事件。
我已经在本地设置了我的 SSH 密钥:
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
那么,我已经将本地 '~/.ssh/id_rsa.pub' 文件内容复制到远程 '~/.ssh/authorized_keys '文件。
我还在本地设置了一个“config”文件,指定了我的身份位置:
HostName ip
IdentityFile ~/.ssh/id_rsa
此时,我可以 ssh 进入远程机器,无需任何密码,如下所示:
ssh dev@ip
但是,在将更改推送到我的远程仓库时,这是已经预料到的:
git push live master
...它在运行远程“post-receive”文件时要求我输入密码。
- 为什么要求我输入此密码?
- 哪一步看不清楚?
跑步:
- 本地 OS X El Capitan
- Ubuntu 16.04.1 LTS 远程
【问题讨论】:
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops?
标签: linux git shell command-line githooks