SSH 時金鑰環不再提示輸入密碼

SSH 時金鑰環不再提示輸入密碼

我記得我曾經能夠這樣做,並有一個提示要求我輸入密碼來解鎖整個 GNOME 會話的密鑰環,因此後續不再需要輸入密鑰環密碼(不太確定這是否在 Ubuntu 中)或其他發行版)。ssh [email protected]ssh

但現在每次都會在終端機中詢問我的密鑰環密碼;這違背了使用 SSH 金鑰的目的。ssh [email protected]

我檢查了

$ cat /etc/pam.d/lightdm | grep keyring
auth    optional        pam_gnome_keyring.so
session optional        pam_gnome_keyring.so auto_start

看起來不錯,而且

$ pgrep keyring
1784 gnome-keyring-d

所以密鑰環守護程式還活著。

我終於發現 SSH_AUTH_SOCK 變數(以及 GNOME_KEYRING_CONTROL 和 GPG_AGENT_INFO 和 GNOME_KEYRING_PID)沒有正確設定。設定此變數的正確方法是什麼?

我想我可以在 .bashrc 中設定它,但是變數只能在 bash 會話中定義,而這對於 ssh 來說很好,我相信其他環境變數對於 GUI 應用程式使用金鑰環是必要的。

答案1

我在 Arch wiki 上找到了這個:https://wiki.archlinux.org/index.php/GNOME_Keyring

基本上,您運行gnome-keyring-daemon -s以獲取特定的密鑰環值,然後在 .bashrc 中新增:

SSH_AUTH_SOCK=`netstat -xl | grep -o '/run/user/yourusername/keyring-xxxxxxx.*/ssh$'`
[ -z "$SSH_AUTH_SOCK" ] || export SSH_AUTH_SOCK

這應該使 ssh 透過密鑰環 GUI 詢問您的密碼。

答案2

我經常使用 ssh,主要是在我的 Ubuntu 工作站和另一個 Ubuntu Web 伺服器以及我工作的所有網站之間。我曾經遇到過和你一樣的症狀,結果是我運行終端的方式出了問題。我創建了一個自訂快捷方式來運行 gnome-terminal,因為我想傳遞某個命令列。但我想我運行 xterm 時也遇到同樣的問題。

當我從內建快捷方式 (Alt-Ctrl-T) 或選單運行終端時,它工作正常,並提示我輸入密碼的 GUI 對話框,但是當我從自訂快捷方式運行它時,它總是從終端本身詢問,但不記得了。

答案3

我也有這個問題。突然出現。顯然是由同一網域的已儲存(可能是錯誤的)(SFTP)登入密碼引起的。

解決方案

開啟Password and Keys(Gnome 金鑰環)並刪除密碼(在 Ubuntu 下)

Paasword 和 Keys 窗口

重新啟動一切都很好。

export | grep SOCK

現在再回傳: SSH_AUTH_SOCK=/run/user/yourusername/keyring-xxxxxxx.*/ssh

相關內容