All Projects → kbialek → ulauncher-bitwarden

kbialek / ulauncher-bitwarden

Licence: other
Ulauncher extension to access Bitwarden vaults

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to ulauncher-bitwarden

gnome-pass-search-provider
Pass password manager search provider for gnome-shell
Stars: ✭ 52 (+100%)
Mutual labels:  gnome, bitwarden
mutter-x11-scaling
Mutter build with Ubuntu patch for Xorg fractional scaling on Manjaro / Arch Linux
Stars: ✭ 77 (+196.15%)
Mutual labels:  gnome
Gnome Shell Extension Blyr
Apply a Blur Effect to GNOME Shell UI elements
Stars: ✭ 229 (+780.77%)
Mutual labels:  gnome
Azure-theme
Azure is a clean and fresh blue theme for GTK 3, GTK 2 and Gnome-Shell
Stars: ✭ 100 (+284.62%)
Mutual labels:  gnome
Emoji Selector For Gnome
This extension provide a popup menu with some emojis ; clicking on an emoji copies it to the clipboard.
Stars: ✭ 239 (+819.23%)
Mutual labels:  gnome
plausible
Hybrid native + web app for Plausible Analytics
Stars: ✭ 47 (+80.77%)
Mutual labels:  gnome
Dash To Dock
A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops.
Stars: ✭ 2,945 (+11226.92%)
Mutual labels:  gnome
revelation
Revelation is a password manager for the GNOME desktop, released under the GNU GPL license. It stores all your accounts and passwords in a single, secure place, and gives you access to it through a user-friendly graphical interface.
Stars: ✭ 52 (+100%)
Mutual labels:  gnome
gobject-example-rs
Example for exporting a GObject/C API from Rust
Stars: ✭ 31 (+19.23%)
Mutual labels:  gnome
Custom-Adwaita-Folder-Icons
A repository for custom Adwaita folders to help organize directories.
Stars: ✭ 124 (+376.92%)
Mutual labels:  gnome
GabTag
A gtk linux application to handle audio tags 🎵
Stars: ✭ 34 (+30.77%)
Mutual labels:  gnome
Yin Yang
Auto Nightmode for KDE, Gnome, Budgie, VSCode, Atom and more
Stars: ✭ 249 (+857.69%)
Mutual labels:  gnome
daily-wallpaper
Change wallpaper automatically with the Photo of The Day of your loved source
Stars: ✭ 70 (+169.23%)
Mutual labels:  gnome
Switcher
Gnome Shell extension to switch windows quickly by typing
Stars: ✭ 239 (+819.23%)
Mutual labels:  gnome
markets
A stock, currency and cryptocurrency tracker
Stars: ✭ 103 (+296.15%)
Mutual labels:  gnome
Gnome Shell Extensions Negesti
An gnome-shell extension that makes window movement a lot easier.
Stars: ✭ 224 (+761.54%)
Mutual labels:  gnome
Systemtray
Cross-platform SystemTray support for Swing/AWT, GtkStatusIcon, and AppIndicator on Java 8+
Stars: ✭ 253 (+873.08%)
Mutual labels:  gnome
gnomit
A simple Git commit message editor for Gnome.
Stars: ✭ 30 (+15.38%)
Mutual labels:  gnome
parlatype
GNOME audio player for transcription
Stars: ✭ 151 (+480.77%)
Mutual labels:  gnome
gui-python-gtk
Repositório criado para documentar e centralizar conteúdos, dicas, tutoriais e exemplos de código sobre a construção de interfaces com a linguagem de programação Python (PyGObject) e o toolkit gráfico Gtk 4.
Stars: ✭ 85 (+226.92%)
Mutual labels:  gnome

ulauncher-bitwarden

A Ulauncher extension to search your Bitwarden vault and copy passwords to the clipboard.

Features

  • Quickly search through the database entries by name, and copy passwords/usernames/URLs/TOTPs to the clipboard
  • Works also with self hosted Bitwarden servers.
  • Support vaults with a passphrase also with MFA codes. The extension does not keep the password in the memory. It rather uses SessionID generated by the Bitwarden CLI client.

Requirements

  • Install a recent version of Bitwarden CLI
  • Make sure you can execute bw in a terminal

Installation

Open Ulauncher preferences window -> Extensions -> "Add extension" and paste the following url:

https://github.com/kbialek/ulauncher-bitwarden

Configuration

  • Bitwarden Server Url
  • User e-mail address
  • Enable MFA login - if you use MFA authentication with your Bitwarden account select yes, otherwise leave no
  • Inactivity lock timeout - forces you to re-enter the passphrase after you haven't used the extension for a while. By default it's set to 300 seconds (5 minutes). If you'd rather not re-enter it, you can set the value to 0, but that's probably not a great idea. NOTE: The cached passphrase is only stored in memory, so you'll need to re-enter it if you reboot your computer or restart Ulauncher.
  • Session store command - optional command called after successful login or unlock. Bitwarden session key is passed over stdin. You can use it to run a command which will store session key in "some" secure location, and later read the session key when directly calling bw in the cli. It's totally up to you how and where you will store the session key.

Usage

Open Ulauncher and type in "bw " to start the extension. If your password database is locked with a passphrase, it'll ask you to enter it:

Unlock Database

Once unlocked, search the database for "mail" logins:

Search

Look at the GMail entry:

Entry details

Exporting Session Key

The extension keeps the session key in memory. This is a problem when one wants to use bw directly from the command line. Vault must be unlocked and bw-cli creates a new session key and at this same time invalidates the session key stored by the extension.

To overcome this problem the extension is now able to export the session key after a successful login or unlock. Please keep in mind, that this weakens your vault's security, as the session key is easier to intercept when it's stored outside of the extension memory.

Exporting session key into a file

I do not recommend this solution because it leaves valid session key in the file until vault is explicitly locked.

To store session key in a file use the following script.

#!/bin/bash

BW_SESSION_FILE=$HOME/.bw-session
touch $BW_SESSION_FILE
chmod 600 $BW_SESSION_FILE
cat /dev/stdin > $BW_SESSION_FILE

Session store command property must be set to absolute path of the script.

Now you can use it in the command line

export BW_SESSION=$(cat ~/.bw-session)
bw list items

Exporting session key into Kernel Key Management

Linux kernel comes with key management facility, that can be used to store user secrets. For more details read this page.

To store session key in the kernel memory use this script.

File $HOME/bin/bw-store-session

#!/bin/bash

BW_SESSION_FILE=$HOME/.bw-session
touch $BW_SESSION_FILE
chmod 600 $BW_SESSION_FILE
KEY_ID=$(cat /dev/stdin | keyctl padd user bw-session @u)
keyctl timeout $KEY_ID 36000
echo $KEY_ID > $BW_SESSION_FILE

Please note that it sets key timeout, therefore the key will expire, which is great from security perspective. Key ID will be stored in $HOME/.bw-session file.

Session store command property must be set to absolute path of the script.

We need one more script to read the key from the kernel memory.

File $HOME/bin/bw-read-session

#!/bin/bash

BW_SESSION_FILE=$HOME/.bw-session
KEY_ID=$(cat $BW_SESSION_FILE)
keyctl print $KEY_ID

Now you can easily read the session key into an environment variable

export BW_SESSION=$(bw-read-session)

Inspiration and thanks

This is a fork of well crafted ulauncher-keepassxc extension. Thank you @pbkhrv!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].