
状況:
公開鍵認証には、プラグイン KeeAgent 付きの Keepass2 を使用します。Keepass2/KeeAgent ではすべてが正しく構成され、キー ペアが生成され、公開鍵がサーバーにコピーされます。Keepass2 が起動し、秘密鍵がロードされます。
そのため、リモート サーバーにログインする場合は、パスワードの入力を求められます。
基本:
OS:
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
(Standard) をウィンドウ マネージャーとして使用すると、SSH_AUTH_SOCK が設定されます。これは、gpg とキーリングを使用する方法と同じですが、/tmp/ssh-XXXXXXXX のようには設定されません。
focusでは、次の画面が表示されました(ウィンドウ マネージャーを起動してログインした後)。
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 の起動時に何かが変更されたと思います。