明示的に設定せずにログインした後、SSH_AUTH_SOCK が無効な値に設定されました。

明示的に設定せずにログインした後、SSH_AUTH_SOCK が無効な値に設定されました。

私はArch LinuxでKDEを使用しており、上記のようにssh-agentエミュレーションモードでgpg-agentを実行しようとしています。ここ

~/.config/environment.d/80_gpg_agent.confenvファイルを作成しました。システム環境ジェネレータ:

PINENTRY=pinentry-qt
SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/gnupg/S.gpg-agent.ssh

言及されたジェネレータはこれを許可しないので設定しませんでしたが、SSH_AGENT_PIDとにかく設定しないでください(そしてそうではありません)。

システムを起動してTTYにログインすると、正しい値SSH_AUTH_SOCK(からsystemctl --user show-environment)が得られます。
その後、KDE ​​セッションにログインしない場合は、正しい SSH_AUTH_SOCK 値を取得します。

SSH_AUTH_SOCK=/run/user/1000/gnupg/S.gpg-agent.ssh

KDEセッション(WaylandまたはX11)にログインすると、この値が何かによって上書きされていることがわかります。

SSH_AUTH_SOCK=/run/user/1000/ssh-agent.socket

値は通常設定される標準値と同じです。SSHエージェントただし、ssh-agentを自動的に起動させる単位ファイルはありません。

これまで、次のことを確認しました。

  • SSH_AUTH_SOCK、または設定するコードがありません.bashrc.profile/etc/bash.bashrc/etc/profile/etc/profile.d/*
  • gpg-agentに設定した環境変数の/etc/environment内側または外側に環境変数がありません。~/.config/environment.d/*
  • ssh-agentは組み込みのkeepassxcを使用しますが、自動起動に追加しなかったため、ssh-agentが無効になっています。

では、問題はこの設定がどこにあり、私の環境を上書きしないようにするにはどうすればよいですか?

答え1

(廃止)モジュールを使用して問題が~/.pam_environment発生したようですpam_env

~/.pam_environmentが上書きされたことがわかりました。SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/ssh-agent.socket

廃止予定とマークされているため、使用される可能性があるとは思えませんでした。

関連情報