如何从使用sudo运行的程序中访问用户的SSH键?
-
15-10-2019 - |
题
困境:我正在处理的Linux程序应该:
- 在git+ssh://协议(使用git)上获取“软件包”。
- 在系统中安装该“软件包”。
为了使git+ssh工作,git需要查看我的钥匙。
对于“软件包”安装,该程序必须具有超级用户特权。
限制:该程序不应单独提升特权(呼叫sudo)。用户必须与sudo明确调用。 (当用户在开始以root登录时运行程序时,让我们忽略情况 - 假设他将正确设置密钥。)
因此,问题是:如何使用Sudo调用的程序中的用户键进行SSH访问?
解决方案
使用-i Identity_file SSH参数。要告诉Git使用适当的命令,您应该将git_ssh变量设置为将调用ssh -i“ $@”的文件。
如果您不能这样做,那么在执行Git Pull命令时,应该放弃特权。
sudo -u <original_user> git fetch git+ssh://
您可以使用$ {sudo_user} enviroment变量来找出原始用户是谁。
不隶属于 StackOverflow