使用 SSH 时 Keyring 不再提示输入密码

使用 SSH 时 Keyring 不再提示输入密码

我记得我曾经能够这样做,并且会提示我输入密码来解锁整个 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 下)

密码和钥匙窗口

重新启动,一切正常。

export | grep SOCK

现在再次返回:SSH_AUTH_SOCK=/run/user/yourusername/keyring-xxxxxxx.*/ssh

相关内容