posts: wrapped_bw: update

This commit is contained in:
He4eT 2026-03-29 21:29:53 +02:00
commit 428ad40c31

View file

@ -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).
Настоятельно рекомендую читать любой код перед тем, как запускать его. Особенно в тех случаях, когда речь идёт о настолько чувствительных данных.