我使用密鑰時沒有任何密碼,因為所有涉及的機器都在相當封閉的環境中運行。所以我不需要 ssh-agent。但我不小心運行了一個似乎啟用了它的腳本,但我無法讓它停止。
我可以終止該進程,但在下次啟動時,由於「解密」金鑰不在快取中,因此我無法在沒有錯誤訊息的情況下進行 ssh:
sign_and_send_pubkey: signing failed: agent refused operation
「罪魁禍首」似乎是$SSH_AUTH_SOCK
。如果我把它刪除的話,這一切就能解決嗎?或者,還有更好的方法?
編輯:$SSH_AUTH_SOCK
只有當我從 GNOME 桌面中的終端檢查時,該變數才存在。如果我從 tty 檢查,它不會返回任何內容。
答案1
看來 Gnome 才是真正的罪魁禍首。或者更準確地說是侏儒鑰匙圈。你嘗試過方法嗎在這裡建議禁用 gnome 密鑰環中的 ssh?該連結涉及 Ubuntu 下的 gnome 密鑰環,但該資訊似乎與發行版相當不可知。
這Arch Linux 維基對此也有很好的描述:
禁用密鑰環守護程序元件
如果您希望執行替代的 SSH 代理程式(例如 ssh-agent 或 gpg-agent),您需要停用 GNOME 金鑰環的 ssh 元件。若要以帳戶本機方式執行此操作:
#!/bin/sh
mkdir ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/ &&
printf '%s\n' 'Hidden=true' >> ~/.config/autostart/gnome-keyring-ssh.desktop