私はManjaroでシステムサービスとして設定しましたssh-agent
(次の指示に従って)。ここ)。サービス自体に加えて、SSH_AUTH_SOCK
環境変数をに設定する必要があります${XDG_RUNTIME_DIR}/ssh-agent.socket
。上記のガイドラインには、それを入れるか、.zshrc
それに対応するものが記載されています。 ssh-agentを使用する必要がある場合は主にコマンドラインを使用するため、これはほとんどのアプリケーションに適しています。
ただし、VSCodeがdmenuで起動すると実行されないため、環境変数を.zshrc
継承しません。$SSH_AUTH_SOCK
したがって、これを機能させるには、この変数をグローバルに設定する必要があります。見ているアーチスウィキ、(私が見ることができる)唯一の方法はを通してですpam_env
。しかし、これは私にとってはうまくいきません。
SSH_AUTH_SOCK DEFAULT=${XDG_RUNTIME_DIR}/ssh-agent.socket
しかし、/etc/environment
VSCodeはprocess.env
まだ変数を定義しません。私も試しました
SSH_AUTH_SOCK DEFAULT=/run/user/1000/ssh-agent.socket
しかし、まだ設定されていません。
これは明らかに環境問題です。シェル.zshrc
でVSCode(ランタイム)を実行するのと同じように、次の$SSH_AUTH_SOCK
ような問題があります。ここに報告してくださいしかし、実際には解決策はありません。
ベストアンサー1
解決策:
次に追加/etc/security/pam_env.conf
:
SSH_AUTH_SOCK DEFAULT=${XDG_RUNTIME_DIR}/ssh-agent.socket
その他の有用な情報:
なぜ最初は機能しなかったのですか/etc/environment
?:
/etc/environment
~/.pam_environment
または とは異なる形式に従います/etc/security/pam_env.conf
。ここに文書化されているように:
/etc/environment
:
VARIABLE=value
~/.pam_environment
そして/etc/security/pam_env.conf
:
VARIABLE [DEFAULT=value] [OVERRIDE=value]
だからフォーマットが間違っています。
なぜ/etc/security/pam_env.conf
他の2つの代わりにそれを使用するのですか?:
なぜなら、それが現在と未来にも完全に有効な唯一の選択だからです。
/etc/environment
環境変数を読みませんので、${XDG_RUNTIME_DIR}
何の効果もありません。の内容はハードコードできますが、$XDG_RUNTIME_DIR
変数(およびそのディレクトリ)は次のように表示されます。pam_systemd
ユーザーごとに動的に。したがって、信頼できるオプションではありません。
~/.pam_environment
同じことはうまくいきます/etc/security/pam_env.conf
が、「廃止され、今後の時点で削除される予定です」(犯罪)。したがって、将来的にも使用できるように使用しないでください。
ちょうど去った/etc/security/pam_env.conf
。現在動作しており、${XDG_RUNTIME_DIR}
使用されなくなりました。