我为用户www-data设置了ssh-agent设置,为私钥保存了密码
从root我需要运行“sudo -u www-data git pull”所以它不会要求git私钥密码。 sudo没有运行.bashrc脚本所以不确定如何解决这个问题?
有什么建议吗?
答案 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。