From 428ad40c316c6d82f888f259d47a61f571565ff8 Mon Sep 17 00:00:00 2001 From: He4eT Date: Sun, 29 Mar 2026 21:29:53 +0200 Subject: [PATCH] posts: wrapped_bw: update --- src/pages/posts/2024/wrapped_bw_ru.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/pages/posts/2024/wrapped_bw_ru.md b/src/pages/posts/2024/wrapped_bw_ru.md index 5eb5554..db685e9 100644 --- a/src/pages/posts/2024/wrapped_bw_ru.md +++ b/src/pages/posts/2024/wrapped_bw_ru.md @@ -26,7 +26,7 @@ description: 'Превращаем fully-featured Bitwarden command-line interfa > You are responsible for maintaining your session key. -Bitwarden CLI поддерживает [механизм сессий](https://bitwarden.com/help/cli/#using-a-session-key), который призван избавить пользователя от бесконечного ввода мастер-пароля. Приложение позволяет разблокировать хранилище и получить временный сессионный ключ, который можно либо хранить в беззащитной переменной окружения, либо прикладывать к каждому запросу вручную. +Bitwarden CLI поддерживает [механизм сессий](https://bitwarden.com/help/cli/#using-a-session-key), который призван избавить пользователя от бесконечного ввода мастер-пароля. Приложение позволяет разблокировать хранилище и получить временный сессионный ключ, который можно либо хранить в беззащитной переменной окружения, либо прикладывать к каждому запросу вручную. По сути своей, сессионный ключ отличается от мастер-пароля тем, что его можно моментально деактивировать, но совершенно невозможно запомнить, а, значит, нужно где-то хранить. Хочется делать это удобно и безопасно, а не в общедоступной переменной окружения. @@ -36,7 +36,7 @@ Bitwarden CLI поддерживает [механизм сессий](https://b Где-то в этот момент чтения документации я окончательно начал подозревать, что официальный CLI предназначен для скриптов: всё строго, никакого автодополнения, никакого интерактивного поиска, а пароли лаконично вываливаются в стандартный вывод терминала, откуда их ещё нужно как-то переправить в место назначения. -## Приручение CLI +## Приручение CLI Может показаться, что я ругаюсь, но отсутствие удобств и излишеств в официальном CLI — это хорошо: - Отсутствие фич всегда приятнее, чем кривые фичи. @@ -69,7 +69,7 @@ save_sessionkey () { local sessionkey=$1 sudo chmod 600 $sessionfile sudo sh -c "echo $sessionkey > $sessionfile" -} +} ``` ``` local sessionkey=$(get_saved_sessionkey) @@ -91,7 +91,7 @@ fi -rw-------. 1 root root 89 Jul 24 22:15 .bitwarden_session ... -~ » less .bitwarden_session +~ » less .bitwarden_session .bitwarden_session: Permission denied ``` @@ -100,25 +100,29 @@ fi Деактивировать сохранённый ключ можно с помощью команды `bw lock`. К сожалению, я так и не понял, как с помощью утилиты `bw` можно проверить, валиден ли ключ, так что после деактивации придётся удалить файл `~/.bitwarden_session` вручную, иначе скрипт так и будет подставлять протухший сохранённый ключ, а `bw` будет каждый раз игнорировать его и настойчиво спрашивать мастер-пароль. +**Update [2026-03-29]**: +Нормального способа проверить валидность сессионного ключа [всё ещё нет](https://github.com/bitwarden/clients/issues/9254), +но я научил утилиту удалять файл с протухшим ключом по косвенным признакам. + ## Применять с осторожностью Взаимодействие с менеджером паролей выглядит для меня теперь примерно так: ``` -~ » bwc github -[sudo] password for $USER: +~ » bwc github +[sudo] password for $USER: Using the existing session key from '/home/$USER/.bitwarden_session'. Searching for 'github'... abcdefgh-ijkl-mnop-qrst-uvwxyz123456 github.com -Username 'Username' copied to clipboard. -Press any key to copy the password... +Username 'username' copied to clipboard. +[Press any key to copy the password] Password copied to clipboard. ``` -Финальный вариант скрипта можно найти в репозитории [He4eT/fuzzy-bitwarden-clipboard](https://github.com/He4eT/fuzzy-bitwarden-clipboard). +Финальный вариант скрипта можно найти в репозитории [He4eT/fuzzy-bitwarden-clipboard](https://github.com/He4eT/fuzzy-bitwarden-clipboard). Настоятельно рекомендую читать любой код перед тем, как запускать его. Особенно в тех случаях, когда речь идёт о настолько чувствительных данных.