Git 是否可以全局添加ssh add
我是否可以对永久保留的identifyFile执行ssh add,目前它仅适用于当前活动的ssh会话(即,使用ssh add添加的identityFile在与服务器进行新ssh会话时丢失,可以通过运行ssh add-L找到) 问题是,我们的amazon服务器有各种各样的项目,其中repo驻留在github中 现在,根据用户情况,每个回购协议都有访问权 假设用户A仅对项目A拥有访问权,B仅对项目B拥有访问权 通过设置访问权限(在github中),现在每个用户只能对相应的项目执行git操作(如git fetch、git push等)(这是我们想要的) 现在我想要的是当一个用户在相应的项目上执行git操作时,我想要ssh代理获取帐户中的所有ssh密钥,并查找与该特定用户匹配的密钥 注意 每个ssh密钥都有一个与之关联的短语(每个用户都知道的唯一秘密),在执行git函数时提示输入 要做到这一点,我们必须这样做Git 是否可以全局添加ssh add,git,ssh,github,ssh-keys,openssh,Git,Ssh,Github,Ssh Keys,Openssh,我是否可以对永久保留的identifyFile执行ssh add,目前它仅适用于当前活动的ssh会话(即,使用ssh add添加的identityFile在与服务器进行新ssh会话时丢失,可以通过运行ssh add-L找到) 问题是,我们的amazon服务器有各种各样的项目,其中repo驻留在github中 现在,根据用户情况,每个回购协议都有访问权 假设用户A仅对项目A拥有访问权,B仅对项目B拥有访问权 通过设置访问权限(在github中),现在每个用户只能对相应的项目执行git操作(如git
ssh-add /root/.ssh/A
或
ssh-add /root/.ssh/B
但如前所述,这仅用于活动ssh会话,退出或与服务器建立一个新的ssh会话,ssh添加信息丢失。可以通过运行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
Host UserA_github
Hostname github.com
User git
IdentityFile /root/.ssh/A
Host UserB_github
Hostname github.com
User git
IdentityFile /root/.ssh/B
这只适用于一个用户(有时适用于“A”,有时不适用,同样适用于“B”)
这种隔离能实现吗?或者我听起来有点过于雄心勃勃了
谢谢您对IdentityFile的编辑非常接近。但是,您需要在IdentityFile中列出唯一的主机名。因为您两次都使用github.com作为主机名,所以当您尝试连接到github.com时,它不知道使用哪个主机名 我们有类似的设置。我们有5个用户,所有用户都登录到一个帐户。但是,Github需要使用各自的ssh密钥查看它们,因此我们有5个密钥。解决这个问题的诀窍是使您的文件看起来像这样
Host github.com
Hostname github.com
User git
IdentityFile /root/.ssh/A
Host github.com
Hostname github.com
User git
IdentityFile /root/.ssh/B
Host UserA_github
Hostname github.com
User git
IdentityFile /root/.ssh/A
Host UserB_github
Hostname github.com
User git
IdentityFile /root/.ssh/B
每当UserB想要做一些与git相关的事情时(例如克隆他们的一个存储库),他们都会运行
git clone UserB_github:UserB/MyRepo
或者类似的东西。这将表现得好像他们已经进入
git clone github.com:UserB/MyRepo
但它将使用适当的标识文件/私钥
我知道我的解决方案不使用持久的
ssh-add
,但我认为这将为您提供您想要的性能。不幸的是,您的用户在每次执行交易时都需要输入他们的密码短语。您能编辑您的问题并(在最后)说出您想要做的事情吗?我问的原因是可能有一个简单的方法来解决它,但我们需要知道你的目标。您当前的方法不太好,需要更换@gahooa Edited让我知道它是否还需要进一步编辑当然,从安全角度来看,多个用户共享一个帐户可能并不理想,但有时有理由这样做。谢谢你给我几个小时左右的时间来测试一下,我一定会接受答案