这是关于 ssh 和 gnome-keyring-daemon 之间冲突的另一个问题,因为在互联网上花了几个小时后我终于放弃了。
环境
- 操作系统:openSUSE 15.0
- 德国:XFCE
- gnome-keyring-daemon 版本:3.20.1
- 海马版本:3.20.0
- git版本:2.16.4
- ssh 版本:OpenSSH_7.6p1、OpenSSL 1.1.0i-fips 2018 年 8 月 14 日
情况
尝试git pull
存储库会出现一条消息
sign_and_send_pubkey: signing failed: agent refused operation
,尽管多年来我一直得到一个简洁的 GUI 提示,它在整个当前会话中记住了输入的密码。 (AFAIU,这个提示是海马显示的?)。
执行 a 后killall gnome-keyring-daemon
,连续尝试执行 git pull 会导致终端提示
Enter passphrase for key '/home/user/.ssh/id_rsa':
它不会在任何地方存储密码(AFAIU,这意味着 ssh-agent 不起作用?)。
SSH_AUTH_SOCK=0
在前面添加也可以达到同样的效果git pull
。
我想要的是
git pull
在我当前的登录会话过程中缓存我的 SSH 密码(就像以前一样)。简洁的 GUI 提示是可选的。- 支持 Ed25519 密钥。 (显然 GNOME 密钥环有(有?)一些问题跟他们)。
我尝试过的
- 禁用“SSH 密钥代理”
XFCE settings → Startup Applications
- 复制
/etc/xdg/autostart/gnome-keyring-ssh.desktop
到复制的文件~/.config/autostart
,然后将该行附加Hidden=true
到复制的文件中
以上都没有阻止gnome-keyring-daemon
启动时启动,因为我仍然可以在ps
.
- 创建
~/.pam_environment
然后添加到GSM_SKIP_SSH_AGENT_WORKAROUND DEFAULT=1
那里 - 恢复到 RSA
- 和谁玩
ssh-add
- 安装
git-credential-libsecret
然后做git config --global credential.helper /usr/lib/git/git-credential-libsecret
- 考虑
gnome-keyring
完全删除这个包,但它被放弃了,因为显然有几个重要的包依赖于它
答案1
我想我终于找到了一个近乎完美的解决方案:FunToo钥匙扣。这是一个非常简单的控制台应用程序,您只需将其添加到您的 中~/.bashrc
,然后每次您打开终端时,它都会自动解锁您的 SSH 密钥。
基本上,它与我使用的 gnome-keyring+Seahorse 组合之间的唯一区别是,当您在会话期间第一次打开终端时(而不是您第一次尝试使用您的终端),它会要求您输入密码。 SSH 密钥),如果您很少使用 SSH,这可能会很烦人。不过这不是我的情况,所以我很满意。