我可以对永久保存的identifyFile执行ssh-add吗?目前它只对当前活动的ssh会话有效(也就是说,使用ssh-add添加的identityFile在使用ssh与服务器建立新的ssh会话时会丢失,可以通过运行ssh-add -L找到)。
问题在于我们的亚马逊服务器有各种项目,这些项目的存储库位于GitHub中。
现在每个仓库都有基于用户的访问权限,例如用户A仅对A项目具有访问权限,B仅对B项目具有访问权限。
设置了此访问权限(在GitHub中)后,现在每个用户只能对其各自的项目执行git操作(这正是我们想要的)。
现在我想要的是,当用户在各自的项目上执行git操作时,ssh-agent将考虑所有ssh密钥并查找与该特定用户相匹配的那个密钥。
请注意,每个ssh密钥都有一个短语(一个唯一的秘密,每个用户都知道),当执行git功能时提示输入该短语。
为了实现这一点,我们需要执行:
问题在于我们的亚马逊服务器有各种项目,这些项目的存储库位于GitHub中。
现在每个仓库都有基于用户的访问权限,例如用户A仅对A项目具有访问权限,B仅对B项目具有访问权限。
设置了此访问权限(在GitHub中)后,现在每个用户只能对其各自的项目执行git操作(这正是我们想要的)。
现在我想要的是,当用户在各自的项目上执行git操作时,ssh-agent将考虑所有ssh密钥并查找与该特定用户相匹配的那个密钥。
请注意,每个ssh密钥都有一个短语(一个唯一的秘密,每个用户都知道),当执行git功能时提示输入该短语。
为了实现这一点,我们需要执行:
ssh-add /root/.ssh/A
或者
ssh-add /root/.ssh/B
但是正如之前提到的,这只适用于当前的ssh会话,退出或者与服务器建立一个新的ssh会话时,ssh-add信息将被丢失。可以通过运行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”也是如此)
是否可以实现这种分离,或者我听起来有点过于雄心勃勃?
谢谢