我已经为用户www-data设置了ssh-agent,并保存了私钥的密码。
从root用户开始,我需要运行“sudo -u www-data git pull”,以便不需要输入git私钥的密码。但是,sudo不会运行.bashrc脚本,所以我不确定如何完成此操作?
有什么建议吗?
从root用户开始,我需要运行“sudo -u www-data git pull”,以便不需要输入git私钥的密码。但是,sudo不会运行.bashrc脚本,所以我不确定如何完成此操作?
有什么建议吗?
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
-i
选项?从man sudo
中可以看到:
-i [command]
-i
(模拟初始登录)选项将以目标用户passwd(5)条目中指定的shell作为登录shell运行。这意味着shell将读取类似于.profile或.login的特定于登录的资源文件。如果指定了命令,则传递给shell以执行。否则,将执行交互式shell。
sudo
没有“运行.bashrc脚本”导致的,所以我想你可以通过自己进行源代码(即运行)来解决这个问题。 - bitmask