Skip to content
Snippets Groups Projects
README 3.23 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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 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’