我可以对永久保留的identifyFile执行ssh-add,目前它仅适用于当前活动的ssh 会话(即,使用 ssh-add 添加的 identityFile 在与服务器建立新的 ssh 会话时会丢失,可以通过运行 ssh-找到添加 -L )
问题是我们的亚马逊服务器有各种项目,repo 在 github 中。
现在每个 repo 都具有访问权限,用户 说用户 A 仅对项目 A具有访问权限,而B仅对项目B 具有访问权限
使用该访问权限集(在 github 中),现在每个用户都可以仅对各自的项目执行 git 操作(如 git fetch、git push 等) (这是我们想要的)
现在我想要的是当用户在相应的项目上执行 git 操作时,我希望ssh-agent获取帐户中的所有 ssh-keys 并查找与该特定用户匹配的那个
笔记
每个 ssh-key 都有一个与之关联的短语(每个用户都知道的唯一秘密),在执行 git 功能时提示输入。
为了实现这一点,我们做
ssh-add /root/.ssh/A
或者
ssh-add /root/.ssh/B
但如前所述,这只保留在活动的 ssh-session中,退出或与服务器建立新的 ssh 会话 ssh-add info is lost。可以通过运行ssh-add -L找到
我也尝试过在 .ssh/config 中定义 IdentityFile ,就像在这个问题中描述的那样
像这样的东西
Host github.com
Hostname github.com
User git
IdentityFile /root/.ssh/A
Host github.com
Hostname github.com
User git
IdentityFile /root/.ssh/B
这仅适用于一个用户(有时它适用于“A”,有时它不适用,同样适用于“B”)
这种隔离能否实现,还是我听起来有点过于雄心勃勃
谢谢