我使用gitosis来托管我的家庭服务器上的git存储库。不同的键推入git存储库
我已经设置它接受三个SSH密钥:我的主密码(无密码),具有读/写访问权限,我的密码之一(我更喜欢将其放在其他人拥有根的服务器上)写入权限,以及只有读权限的第三个密钥。
这个想法是,在远程主机上(我不拥有它,所以别人有它的根),我可以有我的密码私钥和第三个(只读)键,然后在该机器上我可以在没有密码的情况下拉动并使用密码键推回。
Gitosis很好,它会接受任何具有正确权限的密钥。但是当我使用这两个键时,我无法按照自己想要的方式工作。我指着他们在我的SSH配置 - 在〜/ .ssh/config中的远程主机上我有以下几点:
Host *
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa.passphrase
当我拉或克隆这只是罚款 - 操作不提示完成我输入密码。但是当我推动时,我收到一条消息,说我没有权限。它显然只尝试了第一个密钥文件。
如果我交换两个IdentityFile
行,我会提示输入密码,无论我是推还是拉。所以它仍然只是尝试第一个密钥文件。
有没有办法获得我想要的行为 - 也就是说,在执行推式和其他写操作时使用一个密钥文件,而在执行只读操作时使用其中一个密钥文件?
太晚了切换到Gitolite?我强烈推荐它。 – Nic