xセッションなしのgnome-keyringの使用
私のユースケースは、ソフトウェア開発が実行されるヘッドレスサーバーがあることです。通常、SSH接続のX11転送を有効にしますが、接続が遅い遠隔地では使用できません。 定期的にツリー内の18〜20のリポジトリで作業するため、git資格情報の安全なストレージとキャッシュが必要です。そのため、git-credential-gnome-keyringをgit credential.helperとして使用し、libgnome-keyringを使用して通信しますgnome-keyring-daemonへ。ソリューションをテストするために、モニター付きのPCをセットアップし、システムでデフォルトでキーリングが機能することを確認してから、SSHで試してみました。X11転送で動作しますが、それなしでは動作しません。 X11転送なしで接続している場合、キーリングを照会すると次のエラーが発生し、ツールはコマンドラインでのプロンプトにフォールバックします。 ** (process:18305): CRITICAL **: Error communicating with gnome-keyring-daemon 調査の結果、基本的な問題は、gnome-keyring-daemonが接続にdbusを使用して通信することを期待していることです。X11セッションがない場合、dbusは開始されないため、gnome-keyring-daemonとlibgnome-keyringが接続するための一般的なdbusバスはありません。 他の人がこの問題に投稿した2つの解決策を見つけましたが、どちらも私にはうまくいきません。 X11を使用する既存のセッションからDBUSポートを取得します 新しいDBUSポートを手動で起動する 既存のDBUSポートに接続する場合の基本的な概念は、既存のログインセッションのPIDを見つけ、procfsからそのPIDの環境をダンプし、それを検索してDBUS_SESSION_BUS_ADDRESS、現在の環境にエクスポートすることです。これは、セッション内のすべてで使用されるDBUSバスの公開に使用される変数であるため、これを設定すると、セッション内のすべてが共通のDBUSバスで通信できるようになりますが、別のセッションに関連付けられたバスです。 ここのソース: https : //ubuntuforums.org/showthread.php ? t = 1059023 https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh-セッション/ sshログインで実行される.bashrcに追加されたコード: if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] ; then local myPID=`pgrep "(.*session|fluxbox)" | head -n1` if [ -n "$myPID" ] ; then local myVar=`cat /proc/${myPID}/environ …