about summary refs log tree commit diff stats
path: root/pages/pass.md
blob: 2259f9e155c67509bdc6a0e9678d70786a159b13 (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<!--
title: pass, the CLI Password Manager
author: erxeto
description: Usage guide for pass
-->

# pass, the CLI Password Manager

`pass` is a command line utility to manage your passwords.

It creates a simple file/folder structure under your `$PASSWORD_STORE_DIR`
(by default `~/.password-store`) where every file is encrypted with your
gpg key.

You can organize that hierarchy as you see fit. For instance something like
`sites/tilde.news/myusername` is a common way of doing it.

Those files are not limited to contain simply a password, they can contain
anything. But is recommended that the password goes alone in the first
line, so you can benefit from the `-c` option which copies that to the
clipboard directly.

There is `bash`, `zsh` and `fish` command line completion available and
all can be tracked using `git`. So it's really convenient.

## Setup

This is simple, just one command (assuming you have your GnuPG key
ready). GPG-ID is the hex id of your key.

```
$ pass init GPG-ID
    mkdir: created directory ‘/home/user/.password-store’
    Password store initialized for GPG-ID
```

## Basic Usage

List all passwords "tree" style

```
$ pass Password Store
├── sites
│   ├── tilde.zone
│   │   ├── myUserName
│   │   ├── secondAccount ...
```

Find a password

```
$ pass find tilde.zone
Search Terms: tilde.zone
└── sites
    └── tilde.zone
        └── myUserName@tilde.zone
```

See the content of a file

```
$ pass email/tilde.institute/myAccount
    supersecret
```

Copy the first line to the clipboard. Clear time can be configured with
`$PASSWORD_STORE_CLIP_TIME`

```
$ pass -c email/tilde.institute/myAccount
    Copied email/tilde.institute/myAccount to clipboard.
    Will clear in 45 seconds.
```

Insert a new password. It can be multiline with `-m`. Remember to put the
password on the first line if you want to use the clipboard function 

```
$ pass insert sites/foo.com/blah
    Enter password for sites/foo.com/blah:
```

Generate a 32 chars random password and store it. You can define the
default length with `$PASSWORD_STORE_GENERATED_LENGTH`. With `-n` the
password will not include symbols, but alphanumeric characters only. With
`-c` it gets copied to the clipboard as usual.
```
$ pass generate sites/foo.com/abcd 32
    The generated password to sites/foo.com/abcd is: 
        $(-QF&Q=IN2nFBx)
```

take a look at the `--help` option or the complete documentation on
their website.

## Changing Keys

If you need to change the key being used for your password files,
simply navigate to the directory and re-issue `pass init`, but with
the ID of the new key to be used. Pass will prompt for the old key's
password, then automatically decrypt all keys and re-encrypt them
with the new key.
```
$ cd ~/.password-store
$ pass init NEWGPGKEYID
```

references:

* [pass home page](https://passwordstore.org)

[back](/)