Linux

鑰匙串 ssh-agent 覆蓋指定的 SSH 密鑰

  • December 1, 2017

我與兩個使用者(我自己和一個測試使用者)一起使用 GitLab 儲存庫。對於我的測試儲存庫,我在 .git/config 中有這個:

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

而且我根本不使用 test_id_rsa 的密碼。

‘git pull’ 等工作正常,但僅在鑰匙串未執行時。當鑰匙串執行時,似乎使用了我常用的 SSH 密鑰,並且 Git 命令不起作用,因為我遇到使用錯誤的密鑰對。

沒有鑰匙串:

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

我從外殼開始鑰匙串,通過:

eval `keychain --eval --agents ssh id_rsa

當我開始鑰匙串時:

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

有什麼方法可以避免每次在測試中使用我的測試倉庫時都需要禁用鑰匙串?

如果這是一個相當頻繁的密鑰,那麼訣竅就是將該密鑰添加到鑰匙串中:

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

之後,將使用正確的密鑰。

如果一個人不經常使用鑰匙,或者使用很多不同的鑰匙,最好只是為此停止鑰匙串。

引用自:https://unix.stackexchange.com/questions/395645