情況:

情況:

情況:

對於公鑰身份驗證,我使用帶有插件 KeeAgent 的 Keepass2。 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

問題:

直到我從 Focus (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

在傑米我看到:

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 啟動時。

相關內容