可以ssh-添加在全球范围内增加(can ssh-add be added globally)

2019-06-24 20:09发布

我可以做的ssh-添加针对相依相偎的identifyFile,目前它只为准当前活动SSH会话 (即identityFile使用ssh-ADD迷路时,一个新的SSH会话与服务器建立可以发现通过运行添加SSH-添加-L)

问题在于我们的亚马逊服务器在GitHub库休息的各种项目。

现在回购的每一个具有基于用户说, 用户右只为项目A可以访问B有权只B项目的接入 访问权限

随着现在每个用户可以执行git的操作设置(在github上)的访问权(如git的提取,混帐推等),只存在各自的项目 (这是我们所希望的)

现在我想的是,当用户在有各自的项目进行操作的git我想要的ssh-agent采取一切SSH密钥的账户和寻找匹配到特定用户的一个

注意

每个SSH密钥有一个短语(一个独特的秘密知道自己有每个用户),与它相关,提示输入时执行git的功能。

实现这一点,我们做

ssh-add /root/.ssh/A

要么

ssh-add /root/.ssh/B

但正如前面提到的这仅逗留活动SSH会话退出或进行与服务器的一个新的 SSH会话SSH-添加信息丢失 。 可以通过运行SSH-ADD找到-L

我也曾尝试在定义的.ssh 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”工作,有时它does not,同样是“B”太)

可以在此隔离来实现还是我听起来有点过于雄心勃勃

谢谢

Answer 1:

你很接近你的IdentityFile的编辑。 但是,你需要有在IdentityFile列出的唯一的主机名。 因为使用github.com作为主机名两次,当你尝试连接到github.com,它不知道该使用哪一个。

我们有一个类似的设置。 我们有5个用户,他们都登录到一个帐户。 然而,Github上需要看到他们每个人用自己的SSH密钥,所以我们有5个按键。 要解决这个问题的诀窍就是让你的文件看起来像这样

Host UserA_github
        Hostname github.com
        User git
        IdentityFile /root/.ssh/A

Host UserB_github
        Hostname github.com
        User git
        IdentityFile /root/.ssh/B

每当用户B想要做的东西相关的git(例如克隆自己的库之一),他们会跑...

git clone UserB_github:UserB/MyRepo

或类似的东西。 这将表现为,如果他们已经进入...

git clone github.com:UserB/MyRepo 

不同之处在于它会用适当的IdentityFile /私钥。

据我所知,我的解决方案不使用持久ssh-add但我认为这会给你你想要的相同的性能。 不幸的是,你的用户将需要输入自己的密码每次进行交易的时间。



文章来源: can ssh-add be added globally