
Situation:
Für die Authentifizierung mit öffentlichem Schlüssel verwende ich Keepass2 mit dem Plugin KeeAgent. In Keepass2/KeeAgent ist alles richtig konfiguriert, das Schlüsselpaar wird generiert und der öffentliche Schlüssel auf den Server kopiert. Keepass2 wird gestartet und der private Schlüssel wird darin geladen.
Wenn ich mich also bei einem Remote-Server anmelde, werde ich nach einem Passwort gefragt.
Grundlagen:
Betriebssystem:
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
ssh-Pakete:
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
...
Fenstermanager:
ich benutzelxde
Problem:
Dies hat funktioniert, bis ich von Focal (20.04 LTS) auf Jammy (22.04 LTS) aktualisiert habe.
Update 10.November
Eine Neuinstallation von Jammy mit *.iso-Image von heute (10.November 2022) zeigt das gleiche Problem.
Ergebnisse analysieren:
Die Hauptursache ist das fehlende Setzen der Umgebungsvariable SSH_AUTH_SOCK.
(siehehttps://github.com/dlech/KeeAgent/issues/372)
Die Umgebungsvariable muss systemweit sichtbar sein.
Wird sie z. B. in einer Bash-Umgebung gesetzt, ist sie nur in dieser Sitzung sichtbar.
Bei Verwendung von Ubuntu (Standard) als Window-Manager wird SSH_AUTH_SOCK gesetzt, ähnlich wie bei gpg und keyring, aber nicht auf die Art /tmp/ssh-XXXXXXXX
In Focal sah ich Folgendes (nach dem Starten und Anmelden im Fenstermanager):
env | grep SSH
SSH_AUTH_SOCK=/tmp/ssh-0mFzle55uRgI/agent.1862
SSH_AGENT_PID=1990
Und
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
In Jammy sehe ich:
env | grep SSH
<nothing>
Und
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
Lösung?:
Ich denke, dass beim Systemstart, insbesondere beim Start von lxde, etwas geändert wurde.