情况:

情况:

情况:

对于公钥认证,我使用 Keepass2 和插件 KeeAgent。Keepass2/KeeAgent 中的配置正确,密钥对已生成,公钥已复制到服务器。Keepass2 已启动,私钥已加载到其中。
因此,如果我登录远程服务器,系统会提示我输入密码。

基本:

操作系统:

lsb_release -a  
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy

ssh 包:

sudo apt list | grep ssh
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
...
openssh-client-ssh1/jammy 1:7.5p1-13 amd64
openssh-client/jammy,now 1:8.9p1-3 amd64  [installiert]
openssh-known-hosts/jammy,jammy 0.6.2-1.1 all
openssh-server/jammy,now 1:8.9p1-3 amd64  [installiert]
openssh-sftp-server/jammy,now 1:8.9p1-3 amd64  [Installiert,automatisch]
openssh-tests/jammy 1:8.9p1-3 amd64
...

窗口管理器:
我用lxde

问题:

此功能一直有效,直到我从 focal (20.04 LTS) 更新到 jammy (22.04 LTS)

11月10日更新

从今天(2022 年 11 月 10 日)开始,使用 *.iso-image 新安装的 jammy 出现了同样的问题。

分析结果:

根本原因是缺少环境变量 SSH_AUTH_SOCK。
(请参阅https://github.com/dlech/KeeAgent/issues/372)
环境变量必须在整个系统范围内可见。
例如,在 bash 环境中设置它,使其仅在此会话中可见。
使用 Ubuntu(标准)作为窗口管理器设置 SSH_AUTH_SOCK,就像使用 gpg 和密钥环一样,但不是像 /tmp/ssh-XXXXXXXX 那样

在焦点中我看到以下内容(启动并登录窗口管理器后):

env | grep SSH
SSH_AUTH_SOCK=/tmp/ssh-0mFzle55uRgI/agent.1862
SSH_AGENT_PID=1990  

ps ax | grep ssh
1990 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/im-launch /usr/bin/startlxde
2038 ?        Ss     0:00 /usr/bin/ssh-agent -s

在 jammy 中我看到:

env | grep SSH
<nothing>  

ps ax | grep ssh
1006 ?        Ss     0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
8557 ?        Ss     0:00 /usr/bin/ssh-agent -s

解决方案?:

我认为系统启动时发生了一些变化,尤其是在 lxde 启动时。

相关内容