SSH 连接时,密钥环不再提示输入密码

Lie*_*yan 7 11.10 gnome-keyring

我记得我曾经能够这样做ssh blah@foo.com并且有一个提示要求我输入密码来解锁整个 GNOME 会话的密钥环,因此后续ssh不再需要输入密钥环密码(不太确定这是否在 Ubuntu 中)或其他发行版)。

但是现在ssh blah@foo.com每次都会在终端中询问我的密钥环密码;这违背了使用 SSH 密钥的目的。

我检查了

$ cat /etc/pam.d/lightdm | grep keyring
auth    optional        pam_gnome_keyring.so
session optional        pam_gnome_keyring.so auto_start
Run Code Online (Sandbox Code Playgroud)

看起来不错,而且

$ pgrep keyring
1784 gnome-keyring-d
Run Code Online (Sandbox Code Playgroud)

所以钥匙圈守护进程还活着。

我终于发现 SSH_AUTH_SOCK 变量(以及 GNOME_KEYRING_CONTROL 和 GPG_AGENT_INFO 和 GNOME_KEYRING_PID)没有正确设置。设置此变量的正确方法是什么,为什么不在我的环境中设置它们(即它们不应该在默认安装中设置)?

我想我可以在 .bashrc 中设置它,但是变量只能在 bash 会话中定义,虽然这对 ssh 来说很好,但我相信其他环境变量对于 GUI 应用程序使用密钥环是必要的。

Ner*_*est 6

我在 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
Run Code Online (Sandbox Code Playgroud)

这应该使 ssh 通过密钥环 GUI 询问您的密码。


Mar*_*ied 2

我经常使用 ssh,主要是在我的 Ubuntu 工作站和另一个 Ubuntu Web 服务器以及我工作的所有网站之间。我曾经遇到过和你一样的症状,结果是我运行终端的方式出了问题。我创建了一个自定义快捷方式来运行 gnome-terminal,因为我想传递某个命令行。但我想我运行 xterm 时也遇到同样的问题。

当我从内置快捷方式 (Alt-Ctrl-T) 或菜单运行终端时,它工作正常,并提示我输入密码的 GUI 对话框,但是当我从自定义快捷方式运行它时,它总是从终端本身询问,但不记得了。