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 应用程序使用密钥环是必要的。
我在 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 询问您的密码。
我经常使用 ssh,主要是在我的 Ubuntu 工作站和另一个 Ubuntu Web 服务器以及我工作的所有网站之间。我曾经遇到过和你一样的症状,结果是我运行终端的方式出了问题。我创建了一个自定义快捷方式来运行 gnome-terminal,因为我想传递某个命令行。但我想我运行 xterm 时也遇到同样的问题。
当我从内置快捷方式 (Alt-Ctrl-T) 或菜单运行终端时,它工作正常,并提示我输入密码的 GUI 对话框,但是当我从自定义快捷方式运行它时,它总是从终端本身询问,但不记得了。
| 归档时间: |
|
| 查看次数: |
4445 次 |
| 最近记录: |