パスワードを直接渡して、コマンドラインから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
}
答え2
これは非常に残酷で汚い、おそらく非常に間違ったアプローチですが、SSHを介してキーリングのロックを解除するのにしばらく困難を経験した後、次のような小さなスクリプトを思い出しました.
echo 'NOTE: This script will only work if launched via source or .' >&2
echo -n 'Login password: ' >&2
read -s _UNLOCK_PASSWORD || return
killall -q -u "$(whoami)" gnome-keyring-daemon
eval $(echo -n "${_UNLOCK_PASSWORD}" \
| gnome-keyring-daemon --daemonize --login \
| sed -e 's/^/export /')
unset _UNLOCK_PASSWORD
echo '' >&2
はい、電話で. ~/bin/unlock-gnome-keyring
ログインパスワードを入力すると、ログインキーリングがロック解除され、seahorse
リモートXを介して実行している間にlibsecretアプリケーションを介してそれらを表示して使用できます。
しかし、参考にしてください。私はセキュリティの専門家ではありません。これを行うと、重大なセキュリティリスクが発生する可能性があります。メモリなどでパスワードが正しく削除されていることを確認しないため、さらに脆弱になる可能性があります。
答え3
echo -n "pass" | gnome-keyring-daemon
どのコマンドの組み合わせも機能できません。私もこのsecret-tool
コマンドといくつかのPythonライブラリを試しましたが、ほとんどは古く、そのどれもSeahorseで私のキーリングをロック解除していないか、GUIパスワードプロンプトをトリガーしました。
私が助けた唯一のことは、私が見つけたPythonスクリプトでした。ジタブそしてコールドバーグ、Pythonがインストールされている限り、これを行います。スクリプトをダウンロードするのは、以下を実行するのと同じくらい簡単です。
wget https://codeberg.org/umglurf/gnome-keyring-unlock/raw/branch/main/unlock.py
chmod +x unlock.py
その後、次のコマンドは「Login」という主キーリングのロックを解除します(通常は存在しますgnome-keyring-daemon
が、そうでない場合はこのコマンドで生成されます)。
./unlock.py <<<PASSWORDHERE
デフォルト以外のキーリングもロック解除するには、そのキーリングの名前とパスワードを使用して「ログイン」キーリングにプロジェクトを作成するだけです。これにより、「ログイン」キーリングがロック解除されたときにキーリングを自動的にロック解除するオプションが提供されます。
答え4
一部のユースケースでは、キーリングからパスワードを削除すると便利です。したがって、ロックを解除する必要はありません。
Ubuntu 22.04:「seahorse」を検索して開きます。 「パスワード」の下にある「ログイン」を右クリックします(数回かかることがあり、最初は機能しません)。コンテキストメニューから「パスワード変更」を選択してください。現在のパスワードを入力して新しいパスワードフィールドを空白にしてください。 「暗号化されていないパスワードを保存しますか?」を受け入れます。