还有一个“sign_and_send_pubkey:签名失败:代理拒绝操作”

还有一个“sign_and_send_pubkey:签名失败:代理拒绝操作”

这是关于 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,这可能会很烦人。不过这不是我的情况,所以我很满意。

相关内容