![解決策: dpkg-divertを使用してgnome-keyringを無効にする](https://rvso.com/image/1048326/%E8%A7%A3%E6%B1%BA%E7%AD%96%3A%20dpkg-divert%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6gnome-keyring%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B.png)
gnome-keyring が git コミットの邪魔になるのは嫌です。パスワードを要求している間、画面全体がロックされるからです。KDE でも同じです (今は GNOME に切り替えましたが)。毎回 SSH パスフレーズを入力しなくて済むのは便利ですが、ウィンドウからウィンドウへ移動しなければならないのは個人的にはマイナスです。ただの快適さの問題です :/
git config --global --unset credential.helper
と を試しましたgit config --system --unset credential.helper
が、効果がないようです。現在 GNOME を使用しているため、gnome-keyring は削除したくありません。他に何か方法はありますか? 現在、Ubuntu 14.10 を使用しており、Kubuntu と Ubuntu GNOME の両方でこれを実行しました。ありがとうございます。
2014年11月17日更新
これは明らかにSSH全体に影響を与えます。私は次のようにしてみました
sudo rm /etc/xdg/autostart/gnome-keyring-ssh.desktop
しかし、それはうまくいきませんでした。私はできる
gnome-keyring-daemon --replace -c pkcs11,secrets,gpg
セッションごとに 1 回ずつですが、これを永続的に維持したいと思っています。まだ検討中です...
答え1
関連する.desktop
ファイルを から に/etc/xdg/autostart
コピーして~/.config/autostart
追加するだけですHidden=true
:
(cat /etc/xdg/autostart/gnome-keyring-ssh.desktop; echo Hidden=true) > ~/.config/autostart/gnome-keyring-ssh.desktop
それからリロード gnomeシェル( Alt+ を押してF2から入力しr、 を押しますEnter)。
これは唯一のユーザーフレンドリーなソリューション私の場合はうまくいきました(つまり、。デスクトップファイルする/dev/nullまたはchmod 0
)gnome-keyring-daemon
実際、/dev/nullGNOME 3.16 では動作しなくなりました。
功績はヌス。
答え2
Trusty 以外の Ubuntu リリースについてはわかりません。また、GNOME は常に変化するターゲットであるため、リリースごとに異なることが保証されますが、最も確実に機能することがわかったのは次の方法です。
mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/
echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/gnome-keyring-ssh.desktop
少なくとも Unity でのセッションの起動は奇妙ですが、おそらく GNOME3 でもそうです。 から Upstart スクリプトを実行し/usr/share/upstart/sessions/
、次に および の下にあるすべての自動起動デスクトップ エントリを実行し/etc/xdg/autostart
、gnome-keyring
その他多くのものが両方に存在します (おそらく 内のものも実行されますが/usr/share/upstart/xdg/autostart
、私はそれをテストしていません)。
upstartgnome-keyring-ssh
エントリは、システムまたはユーザー ローカルの .desktop エントリのいずれかでそのX-GNOME-Autostart-enabled=false
行をチェックして戻り、標準ssh-agent
セッションが実行されます。その後、ユーザー ローカルの自動起動に一致するエントリがない限り、システム全体gnome-keyring-ssh
が起動します/etc/xdg/autostart
。一致するエントリがある場合は、代わりにそれが実行されます。
以前は、ローカルの自動起動にその行を追加するだけで十分でしたenable=false
が、最近になって (つまり、Trusty の LTS 期間の 2 年以上経過した 2016 年 5 月以降)、動作が変わり、完全なエントリに似たものが必要になりました。必要なキーの正確なセットと、原因となっている問題のあるパッケージ更新についてはまだ調査中です。
GNOMEの人々がOpenSSHキーエージェントにプロキシしなかった理由は誰にも分からないもっと賢明な行動を取るよう提案してみてはいかがでしょうかこのBugzillaエントリ。
答え3
gnome-kerying の ssh-agent コンポーネントのみを無効にする、わかりやすく簡単な方法:
gconftool-2 --set --type bool /apps/gnome-keyring/daemon-components/ssh false
答え4
解決策: dpkg-divertを使用してgnome-keyringを無効にする
sudo dpkg-divert --local --rename /usr/bin/gnome-keyring-daemon
次回ログインすると、このメッセージは消えます。必要なのは 1 行だけですが、説明と警告については、引き続きお読みください。
簡単な説明
この解決策では、プログラムの名前が gnome-keyring-daemon.distrib に変更されるため、プログラムが見つからないようになります。
ログインすると、gnome-keyring が ssh 統合を処理しようとする代わりに、パスワード要求は ssh-agent に直接送信されます。通常のssh-add
コマンドを使用して、git コミットの ssh キーのロックを解除できます。
注意と後悔
Gnomeキーリングは深く絡み合ったGnome デスクトップでは、これがないと、代替品がインストールされるまで、一部の機能が停止する可能性があります。
Gnomeキーリングを再度有効にするには
sudo dpkg-divert --remove --rename /usr/bin/gnome-keyring-daemon
知らないうちにGnome Keyringを使用している可能性があります
Chromium や Evolution など、パスワードを保存できる多くのアプリケーションは、Gnome Keyring に保存されているマスター キーを使用してパスワードを暗号化します。Gnome Keyring を無効にすると、保存されているすべてのパスワードにアクセスできなくなります。Gnome Keyring を無効にする前に、保存されているパスワードをバックアップすることをお勧めします。
Gnome キーリングのバックアップ
~/.local/share/keyrings/ 内のファイルをコピーすることで、キーをバックアップできます。シークレットは暗号化されているため、セキュリティ スタンスによっては、プレーン テキストとしてバックアップすることをお勧めします。これを行うには、「パスワードとキー」プログラム (別名「Seahorse」) を使用して、ログイン キーリングに一時的に空のパスワードを設定します。(ヒント: Seahorse では、右クリックのコンテキスト メニューでパスワード変更オプションが非表示になります。)
警告: パスワードはプレーンテキストで保存される可能性があります
ChromiumとGoogle Chromeは、保存されたパスワードの暗号化キーを取得するために「シークレットサービス」と呼ばれるデーモンに依存しています。シークレットサービスが見つからない場合(Gnome Keyringを無効にするとなくなります)、パスワードは保存されます。暗号化されていないFirefox とは異なり、Chromium ベースのブラウザでは現在、プライマリ パスワードを手動で設定する方法が提供されていません。
Freedesktop.org のシークレット サービス統合
Gnome Keyring は、シークレット サービス デーモンとして機能できるプログラムの 1 つにすぎません。保存されたパスワードが Chromium および Evolution で暗号化されるようにするには、keepassxc をインストールし、設定でシークレット サービスを有効にします。
さらなる説明
または を使用しないのはなぜchmod
ですかmv
?
chmod または mv による変更は、システムが更新されると元に戻ります。dpkg を使用すると、このソリューションは、Ubuntu の新しいリリースへのアップグレードなど、どのような状況でも維持されます。
もっと楽な方法はあるでしょうか?
執筆時点では、Gnome Keyring に Secret Service Integration の提供を継続し、ssh-agent の操作を停止するように指示することはできないようです。多くの人にとってそれが理想的であるため、将来的に Gnome にそのオプションが追加されることを期待します。
他の方法が機能しない理由
長年にわたり、さまざまなソリューションが提案されてきましたが、次のリリースでは機能しなくなりました。その理由を簡単にまとめると次のようになります。
Gnome キーリングの設定
理想的な解決策は、Gnome Keyring を適切に設定することです。実際には、--components
ほぼ機能するコマンドライン オプションがあります。これにより、初期化するコンポーネントを指定できます。
gnome-keyring-daemon --components secrets,ssh,pkcs11
リストからsshを省略しても、理論的にはssh認証が台無しになることはありません。残念ながら、私の経験ではそうではありませんでした。おそらく、gnome-keyringが複数の場所から起動されていたことが問題だったのでしょう(下記参照)。しかし、要するに、Gnome Keyringに一度もないsshコンポーネントをロードして、今じゃない。
apt gnome-keyring を削除します
gnome-keyring パッケージを削除するという明らかな解決策は、gnome-core を含む、それに依存するすべてのパッケージもアンインストールします。回避策はありますが、誤って GNOME デスクトップ環境全体をアンインストールしてしまうことはよくあります。
複数の攻撃ベクトル
gnome-keyring-daemon を強制終了するのが非常に難しい理由の 1 つは、ログイン時に (少なくとも) 4 つの異なる方法で起動され、それぞれの方法を特定の方法で無効にする必要があることです。
- /etc/pam.d/gdm-password 内の PAM (プラグ可能な認証モジュール)
- systemd ユーザーサービスとソケット
- /usr/share/dbus-1/services/ 内の systemd ユーザー session.slice
- /etc/xdg/autostart/gnome-keyring-*.desktop での XDG 自動起動