Skip to content
Snippets Groups Projects
README 3.04 KiB
Newer Older
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
======================
Simple Password Store
by Jason Donenfeld
   Jason@zx2c4.com
======================

This is a very simple password store that encrypts passwords using gpg and
places the encrypted password in a directory. It can generate new passwords
and keep track of old ones.

Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
If the password storage directory ($HOME/.password-store) is also a git
repository, add/remove/change operations will create a corresponding git
commit.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed

Usage:
    pass --init gpg-id
        Initialize new password storage and use gpg-id for encryption.
    pass [--ls]
        List passwords.
    pass pass-name
        Show existing password.
    pass --insert [--multiline] pass-name
        Insert new optionally multiline password.
    pass --generate [--no-symbols] pass-name pass-length
        Generate a new password of pass-length with optionally no symbols.
    pass --remove pass-name
        Remove existing password.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass --push
        If the password store is a git repository, push the latest changes.
    pass --pull
        If the password store is a git repository, pull the latest changes.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass --help
        Show help text.

Examples:

    - Initialize password store:
    
        zx2c4@laptop ~ $ pass --init Jason@zx2c4.com
        mkdir: created directory ‘/home/zx2c4/.password-store’
        Password store initialized for Jason@zx2c4.com.
    
    - List existing passwords in store:

        zx2c4@laptop ~ $ pass
        ├── Business
        │   ├── some-silly-business-site.com
        │   └── another-business-site.net
        ├── Email
        │   ├── donenfeld.com
        │   └── zx2c4.com
        └── France
            ├── bank
            ├── freebox
            └── mobilephone
        
        Alternatively, "pass --ls".

    - Show existing password:

        zx2c4@laptop ~ $ pass Email/zx2c4.com
	sup3rh4x3rizmynam3
    
    - Add password to store:

        zx2c4@laptop ~ $ pass --insert Business/cheese-whiz-factory
        Enter password for Business/cheese-whiz-factory: omg so much cheese what am i gonna do

        Or, multiline passwords:

        zx2c4@laptop ~ $ pass --insert --multiline Business/cheese-whiz-factory
        Enter contents of Business/cheese-whiz-factory and press Ctrl+D when finished:

        Hey this is my 
        awesome
        multi
        line
        passworrrrrrrrd.
        ^D

    - Generate new password:

        zx2c4@laptop ~ $ pass --generate Email/jasondonenfeld.com 15
        The generated password to Email/jasondonenfeld.com is:
        $(-QF&Q=IN2nFBx

        Or, with no symbols:

        zx2c4@laptop ~ $ pass --generate --no-symbols Email/jasondonenfeld.com 12
        The generated password to Email/jasondonenfeld.com is:
        YqFsMkBeO6di

    - Remove password from store:

        zx2c4@laptop ~ $ pass --remove Business/cheese-whiz-factory
        rm: remove regular file ‘/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg’? y
        removed ‘/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg’