パスワードを直接渡して、コマンドラインからGnome Keyring Daemonのロックを解除しようとしています。 --daemonize、--login、--startのいくつかのバリエーションを試しましたが、正しく動作しませんでした。
echo $password | gnome-keyring-daemon --unlock
何もロック解除せずに戻ってきましたSSH_AUTH_SOCK=/run/user/1000/keyring/ssh
。
基本的に私は次のようなものが欲しい:
gnome-keyring-daemon unlock --pw $password
違いがあるかどうかはわかりませんが、Manjaro i3wmバージョンを使用しているため、デスクトップ環境を使用しません。
背景:
私はKeePassXCを使用してキーリングを管理しています。 1つの欠点は、ログイン時にキーリングを自動的にロック解除できないことです。 2つの長いパスワードを入力したくないので、回避策として次のスクリプトを考えました。
- Gnome Keyring Daemonを自動的にロック解除するにはログインしてください。
- Gnome Keyring Daemonには、KeePassXCのPW(一部)が唯一の項目として含まれています。
- プロンプトにパスワードの最後の文字を入力してください。
- Gnome Keyringデーモンを倒す
- パスワードの組み合わせを使用したKeePassXCのロック解除
今、私は再びKeePassXCをロックする反対のタスクを実行したいと思います。
- KeePassXCでGnome Keyring DaemonのPWを入手してください。
- KeePassXCを殺す
- GnomeKeyringDaemon ロック解除 <- 作業できない部分です。
ベストアンサー1
--unlock
(現在)必要な操作を正確に実行するgnome-keyring-daemonのパラメータがあります。通常、呼び出されるとロックが解除され、悪魔化され、エコーされますSSH_AUTH_SOCK
。すでに実行されている既存のデーモンがあると思われる場合は、そのパラメーターを--replace
追加して新しいデーモンにシームレスに切り替えることができます。
私は定期的に公開鍵(パスワードなし)を使用してsshを介してヘッドレスUbuntu 20.0.4LTSシステムにログインしますが、開発目的で利用可能なキーリングが必要な場合があります。そのため、bash設定ファイルで次の関数を定義し、ロック解除がうまく行われました(既存のデーモンが実行されているかどうかにかかわらず)。
# Linux unlock gnome keyring
function unlock-keyring ()
{
read -rsp "Password: " pass
export $(echo -n "$pass" | gnome-keyring-daemon --replace --unlock)
unset pass
}