
情況:
對於公鑰身份驗證,我使用帶有插件 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 啟動時。