Skip to content
Snippets Groups Projects
README 3.37 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:
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass init gpg-id
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        Initialize new password storage and use gpg-id for encryption.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass [ls] [subfolder]
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        List passwords.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass [show] [--clip,-c] pass-name
        Show existing password and optionally put it on the clipboard.
        If put on the clipboard, it will be cleared in 45 seconds.
    pass insert [--multiline,-m] pass-name
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        Insert new optionally multiline password.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass generate [--no-symbols,-n] [--clip,-c] pass-name pass-length
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        Generate a new password of pass-length with optionally no symbols.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        Optionally put it on the clipboard and clear board after 45 seconds.
    pass remove pass-name
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        Remove existing password.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass push
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        If the password store is a git repository, push the latest changes.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass pull
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        If the password store is a git repository, pull the latest changes.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass git git-command-args...
        If the password store is a git repository, execute a git command
	specified by git-command-args.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
    pass help
        Show this text.
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed

Examples:

    - Initialize password store:
    
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        zx2c4@laptop ~ $ pass init Jason@zx2c4.com
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        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
        
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        Alternatively, "pass ls".
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed

    - Show existing password:

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

Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        zx2c4@laptop ~ $ pass insert Business/cheese-whiz-factory
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        Enter password for Business/cheese-whiz-factory: omg so much cheese what am i gonna do

        Or, multiline passwords:

Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        zx2c4@laptop ~ $ pass insert --multiline Business/cheese-whiz-factory
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        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:

Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        zx2c4@laptop ~ $ pass generate Email/jasondonenfeld.com 15
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        The generated password to Email/jasondonenfeld.com is:
        $(-QF&Q=IN2nFBx

        Or, with no symbols:

Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        zx2c4@laptop ~ $ pass generate --no-symbols Email/jasondonenfeld.com 12
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        The generated password to Email/jasondonenfeld.com is:
        YqFsMkBeO6di

    - Remove password from store:

Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        zx2c4@laptop ~ $ pass remove Business/cheese-whiz-factory
Jason A. Donenfeld's avatar
Jason A. Donenfeld committed
        rm: remove regular file ‘/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg’? y
        removed ‘/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg’