钥匙串 ssh-agent 覆盖指定的 SSH 密钥

钥匙串 ssh-agent 覆盖指定的 SSH 密钥

我将 GitLab 存储库与两个用户(我自己和一个测试用户)一起使用。对于我的测试存储库,我在 .git/config 中有这个:

[core]
    sshCommand = ssh -i /test-project/test_id_rsa
[remote "origin"]
    url = [email protected]:test.tester/test-repo.git

我根本不使用 test_id_rsa 的密码。

“git pull”等工作正常,但仅当钥匙串未运行时才有效。当钥匙串运行时,似乎使用了我常用的 SSH 密钥,并且 Git 命令将无法工作,因为我发现使用了错误的密钥对。

不带钥匙扣:

lynoure@laptop:~/repo$ ssh -i ~/.ssh/a_test.tester_key [email protected]
Welcome to GitLab, test tester!
Connection to gitlab.example.com closed.

我用 shell 启动钥匙串,方法是:

eval `keychain --eval --agents ssh id_rsa

当我启动钥匙串时:

lynoure@laptop:~/repo$ ssh -i ~/.ssh/a_test.tester_key [email protected]
Welcome to GitLab, Lynoure!
Connection to gitlab.example.com closed.

有什么方法可以避免每次在测试中使用测试存储库时都需要禁用钥匙串?

答案1

如果这是一把经常使用的钥匙,那么技巧就是将该钥匙添加到钥匙串中:

eval `keychain --eval --agents ssh id_rsa a_test.tester_key

之后,就可以使用正确的密钥了。

如果一个人使用钥匙的频率较低,或者使用很多不同的钥匙,最好停止钥匙串。

相关内容