Bash

unix pass - 使用 PASSWORD_STORE_GPG_OPTS 傳遞密碼

  • May 17, 2022

以下是通行證資訊:https ://www.passwordstore.org

我的重點是,我想在命令行中傳遞密碼密鑰。但是,我可以找到的與此問題相關的主題和解決方案不適用於我的情況。

當我檢查 Pass 的程式碼時,我發現了一個名為 PASSWORD_STORE_GPG_OPTS 的參數。據我所知,應該可以使用它將*–pinentry-mode=loopback –passphrase “<password_here>"*傳遞給 Pass 執行的 gpg。執行它的程式碼片段在這裡:

#Line 9
GPG_OPTS=( $PASSWORD_STORE_GPG_OPTS "--quiet" "--yes" "--compress-algo=none" "--no-encrypt-to" )

#(...)

#Line 387

pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | $BASE64)" || exit $?

但是,由於某種原因,這不起作用。

那麼問題來了,是否可以使用這個參數將密碼傳遞給 gpg 並在沒有提示的情況下使用 pass?如果沒有,那麼還有其他方法可以做到嗎?

編輯:正如@they 所建議的,這裡是關於我在做什麼的資訊:

設置變數:

export PASSWORD_STORE_GPG_OPTS="--pinentry-mode=loopback --passphrase '&lt;password_goes_here&gt;'"

備註:密碼僅包含大小寫字母和數字 - 沒有空格或其他字元。

然後,使用以下命令執行傳遞:

pass address/to/some/password

結果是:

gpg: decryption failed: No secret key

就我而言,正如@they 所建議的那樣,問題在於使用(出於未知原因……)引號。沒有他們,一切都像魅力一樣運作。

作為從字元串讀取密碼的替代方法,如上所述,密碼片語也可以通過某些文件處理:

export PASSWORD_STORE_GPG_OPTS="--pinentry=loopback --passphrase-file /path/to/.passphrase"

使用散列密碼似乎是不可能的(例如,使用mkpasswd -m sha-512 passphrase &gt; /path/to/.passphrase-hashed),因此需要以純文字形式給出。

引用自:https://unix.stackexchange.com/questions/688163