Терминал зависает, пока я использую `$ pass insert [..]`

Терминал зависает, пока я использую `$ pass insert [..]`

Этот пост о утилите pass. У меня она работает хорошо, за исключением случаев, когда я пытался использовать

$ pass insert Email/gmail/myname

Мой терминал выдает приглашение

Enter password for Email/gmail/myname: _

и зависает, пока никакие нажатия клавиш не влияют на него, кроме Ctrl-Cостановки программы. Достаточно интересно, что программа создала каталоги ~/.local/share/password-store/Email/gmail/. У кого-нибудь была такая же проблема раньше?

(Я использую passv1.7.3 на Arch.)

решение1

При интерактивной вставке enterклавиша указывает на то, что вы завершили ввод пароля:

$ pass insert test
Enter password for test:   [keystrokes: asdf<enter>]
Retype password for test:  [keystrokes: asdf<enter>]

$ pass test
adsf

Кроме того, с помощью --echoили -eможно принимать входные данные через stdin из канала.

Например, я делаю запись testoс паролем hello world:

$ echo "hello world" | pass insert --echo testo
[main b451b23] Add given password for testo to store.
 1 file changed, 1 insertion(+)
 create mode 100644 testo.gpg

$ pass testo
hello world

Но это работает только для отдельных строк. Для многострочного ввода используйте флаг --multilineвместо --echo.

$ man pass
$ echo "password123" > passfile.txt
$ echo "Email: [email protected]" >> passfile.txt
$ cat passfile.txt | pass insert --multiline test
Enter contents of test and press Ctrl+D when finished:

[main e1acd8e] Add given password for test to store.
 1 file changed, 1 insertion(+)
 create mode 100644 test.gpg

$ pass test
password123
Email: [email protected]

В документации на странице руководства не упоминается нажатие enterдля прекращения ввода, возможно, я отправлю письмо по электронной почтесписок рассылки разработчиковоб этом. Вот текущая информация man pass:

       insert [ --echo, -e | --multiline, -m ] [ --force, -f ] pass-name
              Insert  a  new  password  into the password store called pass-name. This will read the new password from standard in. If --echo or -e is not
              specified, disable keyboard echo when the password is entered and confirm the password by asking for it twice. If --multiline or -m is spec‐
              ified,  lines will be read until EOF or Ctrl+D is reached. Otherwise, only a single line from standard in is read. Prompt before overwriting
              an existing password, unless --force or -f is specified. This command is alternatively named add.

Связанный контент