aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/README
blob: b362a1132e52f7a2af65902beb196c06bddcdc22 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
======================
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.

If the password storage directory ($HOME/.password-store) is also a git
repository, add/remove/change operations will create a corresponding git
commit.

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.
    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.
    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’