Ssh

gpg-agent 而不是 ssh-agent

  • December 17, 2015

我有一個 Yubikey 4,我想使用儲存在其中的 GPG 密鑰對 SSH 伺服器進行身份驗證。
我想從 GitHub 開始。我已經將我的 GPG 身份驗證密鑰添加到 GitHub。

我的問題是,當我 ssh 時,我的代理不使用此密鑰。我通過嘗試連接到我的 VPS 進行了檢查,ssh -v但它跳過了我的 GPG 密鑰。我的 Yubikey 已插入並gpg2 --card-status顯示所有詳細資訊。我能夠很好地簽名和解密以及使用 Yubikey 的其他功能。

ssh 輸出

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/wilhelm/.ssh/id_rsa
debug1: Trying private key: /home/wilhelm/.ssh/id_dsa
debug1: Trying private key: /home/wilhelm/.ssh/id_ecdsa
debug1: Trying private key: /home/wilhelm/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

我禁用了 gnome 密碼管理器。

我已經查看了將 SSH 和 Git 連接到 gpg-agent並遵循了該建議,但它似乎不起作用。

╰─ ssh-add -l
Could not open a connection to your authentication agent.

╰─ ps aux | grep gpg-agent
wilhelm  26079  0.0  0.0  20268   980 ?        Ss   20:57   0:00 gpg-agent --daemon --enable-ssh-support --sh
wilhelm  31559  0.0  0.0  12724  2184 pts/1    S+   22:49   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn gpg-agent

ssh``gpg-agent如果您不給它這樣做的方式,則無法打開與您的連接。

當您啟動gpg-agentwith--enable-ssh-support選項時,它會列印出需要在 shell 中可用的環境變數,您將從那裡使用ssh. 如何獲得它們的可能性很少:

  • 停止gpg-agent並在您使用您的 shell 中再次啟動它ssh(這應該是測試它的最簡單方法):
eval $(gpg-agent --daemon --enable-ssh-support --sh)
  • SSH_AUTH_SOCK找到認證socket的位置,手動設置環境變數

稍後,當您知道它可以工作時,您應該根據手冊頁設置代理啟動gpg-agent(1),以便~/.xsession讓它自動啟動。

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