我想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 代理。