使用 gnome-keyring 作为 ssh 代理,而不是 openssh

使用 gnome-keyring 作为 ssh 代理,而不是 openssh

我想gnome-keyring在 KDE 中使用以提供对 ssh 密码的访问。它在登录时正确解锁,并且 ssh 代理套接字在那里。我的问题是阴影openSSH ssh-agent。显然 KDE 会话是用ssh-agent

$ ps aux | grep ssh-agent
beaujean  2029  0.0  0.0  11140   316 ?        Ss   11:22   0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch /usr/bin/startkde

然后在 kde 会话中,

SSH_AUTH_SOCK=/tmp/ssh-Jv2eneUNSlQ6/agent.3739;

ssh-agent 是空的,系统提示我输入密码。顺便说一句,gnome-keyring ssh 套接字也处于活动状态

$ ss -xl | grep ssh
u_str  LISTEN     0      128    /run/user/1000/keyring/ssh 25108       * 0
u_str  LISTEN     0      128    /tmp/ssh-Jv2eneUNSlQ6/agent.3739 36471      * 0 

我可以手动切换插座

export SSH_AUTH_SOCK=`ss -xl | grep -o '/run/user/1000/keyring/ssh'`

并且在此 shell 中无需密码即可访问 ssh 密钥。如何在启动时为整个 KDE 会话实现此目的?有几个问题涉及如何实现相反的目标;即防止gnome-keyring覆盖 ssh-agent。对我来说,不幸的是它不会覆盖SSH_AUTH_SOCK。也许如果我可以避免 kde 被 启动ssh-agent,事情会很好,但我不知道在启动过程的哪个阶段这个命令

/usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch /usr/bin/startkde

被执行

答案1

我没有找到解决办法,其他人也有同样的问题KDE 论坛但一个简单的解决方法是设置 ssh 代理.profile

export SSH_AUTH_SOCK=`ss -xl | grep -o '/run/user/1000/keyring/ssh'`

这不会被其余的启动程序覆盖,至少在(启动)shell 中正确设置。不幸的是,在其余的 Windows 系统中,它仍然是其他 ssh 代理。

相关内容