Ssh
gpg-agent 而不是 ssh-agent
我有一個 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-agent
with--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
讓它自動啟動。