An open API service indexing awesome lists of open source software.

https://github.com/Evidlo/passhole

A secure hole for your passwords (KeePass CLI)
https://github.com/Evidlo/passhole

keepass password-manager unix

Last synced: 20 days ago
JSON representation

A secure hole for your passwords (KeePass CLI)

Awesome Lists containing this project

README

        

Passhole
========

.. image:: https://img.shields.io/matrix/pykeepass:matrix.org.svg
:target: https://matrix.to/#/#pykeepass:matrix.org

``passhole`` is a commandline password manager for KeePass inspired by `pass`_.

.. _pass: https://www.passwordstore.org

.. image:: https://i.imgur.com/lWLgbo3.gif

- `Manual`_
- `Features`_
- `Setup`_
- `Example Usage`_
- `Example i3wm Keybindings`_
- `Testing and Development`_

Features
------------

- fill user/pass field in any application via keyboard shortcut
- add, delete, move, edit, rename entries and groups
- generate alphanumeric, symbolic, or `correct horse battery staple`_ style passwords
- temporarily cache database password (by default for 10 minutes)
- multiple databases
- supports KeePass v3 and v4 databases
- supports TOTP

.. _correct horse battery staple: http://xkcd.com/936

See below for examples and the `manual`_ (or ``man passhole``) for a complete list of commands and options.

.. _manual: https://github.com/evidlo/passhole/tree/master/MANUAL.rst

Setup
------------

.. code:: bash

pip install passhole
ph init

# optionally install zenity for graphical password prompt
sudo apt install zenity

Example Usage
--------------

.. code:: bash

# add a new entry with manually created password
$ ph add github
Username: Evidlo
Password:
Confirm:
URL: github.com

# add an entry with a generated alphanumeric password
$ ph add neopets -a
Username: Evidlo
URL: neopets.com

# add a new group
$ ph add social/

# add an entry to `social/` with a 32 character password (alphanumeric + symbols)
$ ph add social/facebook -s 32
Username: [email protected]
URL: facebook.com

# add an entry to `social/` with a correct-horse-battery-staple type password
$ ph add social/twitter -w
Username: [email protected]
URL: twitter.com

# list all entries
$ ph list
github
neopets
[social]
├── facebook
└── twitter

# display contents of entry
$ ph show social/twitter
Title: twitter
Username: Evidlo
Password: inns.ambien.travelling.throw.force
URL: twitter.com

# retrieve contents of specific field for use in scripts
$ ph show social/twitter --field password
inns.ambien.travelling.throw.force

Example i3wm Keybindings
------------------------

.. code:: bash

# select entry using dmenu, then send password to keyboard
bindsym $mod+p exec "ph type --prog dmenu"

# select entry using dmenu, then send username + password to keyboard
bindsym $mod+Shift+p exec "ph type --tabbed --prog dmenu"

Testing and Development
-----------------------

Running tests

.. code:: bash

# from repo root dir:
python test/tests.py

Isolated install in Docker

.. code:: bash

# debian
make docker_debian

Building manpage and packaging

.. code:: bash

make man
make dist

See also
--------
- `keepmenu`_
- `kpcli`_
- `keepassxc`_
- `kdbxpasswordpwned`_

.. _keepmenu: https://github.com/firecat53/keepmenu/
.. _kpcli: http://kpcli.sourceforge.net/
.. _keepassxc: https://keepassxc.org/
.. _kdbxpasswordpwned: https://github.com/fopina/kdbxpasswordpwned

Build Dependencies
---------------------------

Alpine

apk add gcc libffi-dev py3-lxml py3-pip python3-dev libc-dev