gpt4 book ai didi

linux - 如何从使用 sudo 运行的程序访问用户的 ssh key ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:01:06 28 4
gpt4 key购买 nike

困境:我正在开发的 Linux 程序应该:

  1. 通过 git+ssh://协议(protocol)(使用 Git)获取“包”。
  2. 在系统中安装该“软件包”。

要使 git+ssh 工作,Git 需要查看我的 key 。

对于“包”安装,程序必须有 super 用户权限。

限制:程序不应自行提升权限(调用 sudo)。用户必须使用 sudo 显式调用它。 (让我们忽略用户在以 root 身份开始登录时运行程序的情况——假设他随后会正确设置 key 。)

那么,问题是:如何使用 sudo 调用的程序中的用户 key 进行 ssh 访问?

最佳答案

使用 -i identity_file ssh 参数。要告诉 git 使用正确的命令,您应该将 GIT_SSH 变量设置为一个将调用 ssh -i "$@"的文件。

如果您不能这样做,那么您应该在执行 git pull 命令时放弃特权。

sudo -u <original_user> git fetch git+ssh:// 

您可以使用 ${SUDO_USER} 环境变量来找出原始用户是谁。

关于linux - 如何从使用 sudo 运行的程序访问用户的 ssh key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4592052/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com