Sudo git是另一个使用ssh-agent进行密钥访问的用户

时间:2012-02-06 01:58:07

标签: git ubuntu sudo

我为用户www-data设置了ssh-agent设置,为私钥保存了密码

从root我需要运行“sudo -u www-data git pull”所以它不会要求git私钥密码。 sudo没有运行.bashrc脚本所以不确定如何解决这个问题?

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

我这样做,并在我的.bash_profile中执行ssh-add:

sudo -u otherusername ssh-agent bash -l

不幸的是,当我使用向上箭头时,我似乎没有任何历史记录。但是,当我运行相同的命令减去sudo部分时,我会这样做。

顺便说一句,这就是我在bash配置文件中自动启动ssh-agent(只有一次)并添加一个RSA密钥(只有一次):

# Start ssh-agent & add key
if [[ -z $SSH_AGENT_PID ]]; 
then 
    echo Starting ssh-agent automatically...
    ssh-agent bash -l
elif [[ 0 == `ssh-add -l | grep "(RSA)" -c` ]];
then
    echo Adding ssh key automatically...
    # you might have your key in a different location:
    ssh-add ~/.ssh/idents/id_rsa
fi

答案 1 :(得分:2)

也许你想要-i选项?来自man sudo

  

-i [command]

     

-i(模拟初始登录)选项将目标用户的passwd(5)条目中指定的shell作为登录shell运行。这意味着shell将读取特定于登录的资源文件,如.profile或.login。如果指定了命令,则将其传递给shell以供执行。否则,将执行交互式shell。