mirror of
https://github.com/He4eT/oddsquat.git
synced 2026-05-04 20:37:22 +00:00
posts: wrapped_bw: update
This commit is contained in:
parent
5239c0f2ac
commit
428ad40c31
1 changed files with 13 additions and 9 deletions
|
|
@ -26,7 +26,7 @@ description: 'Превращаем fully-featured Bitwarden command-line interfa
|
||||||
|
|
||||||
> You are responsible for maintaining your session key.
|
> 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
|
||||||
|
|
||||||
Может показаться, что я ругаюсь, но отсутствие удобств и излишеств в официальном CLI — это хорошо:
|
Может показаться, что я ругаюсь, но отсутствие удобств и излишеств в официальном CLI — это хорошо:
|
||||||
- Отсутствие фич всегда приятнее, чем кривые фичи.
|
- Отсутствие фич всегда приятнее, чем кривые фичи.
|
||||||
|
|
@ -69,7 +69,7 @@ save_sessionkey () {
|
||||||
local sessionkey=$1
|
local sessionkey=$1
|
||||||
sudo chmod 600 $sessionfile
|
sudo chmod 600 $sessionfile
|
||||||
sudo sh -c "echo $sessionkey > $sessionfile"
|
sudo sh -c "echo $sessionkey > $sessionfile"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
```
|
```
|
||||||
local sessionkey=$(get_saved_sessionkey)
|
local sessionkey=$(get_saved_sessionkey)
|
||||||
|
|
@ -91,7 +91,7 @@ fi
|
||||||
-rw-------. 1 root root 89 Jul 24 22:15 .bitwarden_session
|
-rw-------. 1 root root 89 Jul 24 22:15 .bitwarden_session
|
||||||
...
|
...
|
||||||
|
|
||||||
~ » less .bitwarden_session
|
~ » less .bitwarden_session
|
||||||
.bitwarden_session: Permission denied
|
.bitwarden_session: Permission denied
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -100,25 +100,29 @@ fi
|
||||||
Деактивировать сохранённый ключ можно с помощью команды `bw lock`.
|
Деактивировать сохранённый ключ можно с помощью команды `bw lock`.
|
||||||
К сожалению, я так и не понял, как с помощью утилиты `bw` можно проверить, валиден ли ключ, так что после деактивации придётся удалить файл `~/.bitwarden_session` вручную, иначе скрипт так и будет подставлять протухший сохранённый ключ, а `bw` будет каждый раз игнорировать его и настойчиво спрашивать мастер-пароль.
|
К сожалению, я так и не понял, как с помощью утилиты `bw` можно проверить, валиден ли ключ, так что после деактивации придётся удалить файл `~/.bitwarden_session` вручную, иначе скрипт так и будет подставлять протухший сохранённый ключ, а `bw` будет каждый раз игнорировать его и настойчиво спрашивать мастер-пароль.
|
||||||
|
|
||||||
|
**Update [2026-03-29]**:
|
||||||
|
Нормального способа проверить валидность сессионного ключа [всё ещё нет](https://github.com/bitwarden/clients/issues/9254),
|
||||||
|
но я научил утилиту удалять файл с протухшим ключом по косвенным признакам.
|
||||||
|
|
||||||
## Применять с осторожностью
|
## Применять с осторожностью
|
||||||
|
|
||||||
Взаимодействие с менеджером паролей выглядит для меня теперь примерно так:
|
Взаимодействие с менеджером паролей выглядит для меня теперь примерно так:
|
||||||
|
|
||||||
```
|
```
|
||||||
~ » bwc github
|
~ » bwc github
|
||||||
[sudo] password for $USER:
|
[sudo] password for $USER:
|
||||||
Using the existing session key from '/home/$USER/.bitwarden_session'.
|
Using the existing session key from '/home/$USER/.bitwarden_session'.
|
||||||
Searching for 'github'...
|
Searching for 'github'...
|
||||||
|
|
||||||
abcdefgh-ijkl-mnop-qrst-uvwxyz123456
|
abcdefgh-ijkl-mnop-qrst-uvwxyz123456
|
||||||
github.com
|
github.com
|
||||||
|
|
||||||
Username 'Username' copied to clipboard.
|
Username 'username' copied to clipboard.
|
||||||
Press any key to copy the password...
|
[Press any key to copy the password]
|
||||||
Password copied to clipboard.
|
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).
|
||||||
|
|
||||||
Настоятельно рекомендую читать любой код перед тем, как запускать его. Особенно в тех случаях, когда речь идёт о настолько чувствительных данных.
|
Настоятельно рекомендую читать любой код перед тем, как запускать его. Особенно в тех случаях, когда речь идёт о настолько чувствительных данных.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue