Shell-Script
從命令行解鎖 Gnome Keyring Daemon
我正在嘗試通過直接向其傳遞密碼來從命令行解鎖 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 來管理我的密鑰環。這樣做的一個缺點是,我無法在登錄時自動解鎖密鑰環。由於我不想輸入兩個長密碼,因此我想出了以下腳本作為解決方法:
- 登錄自動解鎖 Gnome Keyring Daemon
- Gnome Keyring Daemon 包含(一部分)到 KeePassXC 的 PW 作為唯一條目
- 在提示符中輸入密碼的最後一個字元
- 殺死 Gnome 鑰匙圈守護程序
- 使用組合密碼解鎖 KeePassXC
現在我想做相反的事情來再次鎖定 KeePassXC:
- 從 KeePassXC 獲取 Gnome Keyring Daemon 的 PW
- 殺死 KeePassXC
- 解鎖 GnomeKeyringDaemon <- 這是我無法開始工作的部分
這是一種非常殘酷、骯髒且可能非常錯誤的方法,但在努力通過 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 應用程序使用它。不過請注意,我不是安全專家,這樣做可能會帶來嚴重的安全隱患。我沒有檢查密碼是否在記憶體等中正確清除,這可能會使您更容易受到攻擊。