
상황:
공개 키 인증을 위해 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 환경에서 설정하면 이 세션에서만 표시됩니다.
Window-Manager로 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 시작 시에 뭔가 변경된 것 같습니다.