在尝试将某些更改推送到 git repo 之后,我尝试触发可执行文件' 收到后' 远程计算机。在此文件中有一些需要提升权限的命令,例如:
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
' 收到后'每当我按下时,文件就会执行。
但是,在收到后' 收件人中要求输入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/id_rsa
~/.ssh/id_rsa.pub
然后,我已经复制了本地' 〜/ .ssh / id_rsa.pub '将内容存档到遥控器' 〜/ .ssh / authorized_keys '文件。
我还设置了' 配置'文件,在本地,指定我的身份的位置:
HostName ip
IdentityFile ~/.ssh/id_rsa
此时,我能够直接进入远程计算机,没有任何密码,如下所示:
ssh dev@ip
然而,在将更改推送到我的远程仓库时,已经预料到了这一点:
git push live master
...在运行遥控器' 收件后发送'时,它会要求我输入密码。文件。
运行:
答案 0 :(得分:4)
这与GIT或SSH无关。默认情况下,Linux发行版要求任何运行sudo
命令的用户即使有权限也要输入密码。这可以被覆盖(见下文)。
重写此步骤的步骤:)
例如,检查this answer。
您需要在NOPASSWD
文件中为相关用户添加sudoers
指令。从那个答案修改:
dev ALL = NOPASSWD: ALL
您可以使用特定的安全命令替换ALL
。