pass.md 4.53 KB
Newer Older
ben's avatar
ben committed
1 2 3 4 5 6
# Accès à la base de données de mots de passes

J'ai installé une base de données de mots passes reposant sur [pass](https://www.passwordstore.org), `git`, `gitlab.domainepublic.net` et `gpg`. Cette base est ma base personnelle (Benoit) mais le déchiffrement des mots de passes dans le dossier Amis de la Terre/ est autorisé pour la clé GPG associée à contact(a)amisdelaterre.be, à l'exception du dossier Amis de la Terre/admin.

## Accès sur un ordinateur distant

ben's avatar
ben committed
7
### Installer pass et ses dépendances
ben's avatar
ben committed
8
```
ben's avatar
ben committed
9
# apt-get install qtpass
ben's avatar
ben committed
10
```
ben's avatar
ben committed
11 12 13
Pour Stretch (debian 9), installez la version backports
```
# echo 'deb http://ftp.debian.org/debian stretch-backports main' >> /etc/apt/sources.list
ben's avatar
ben committed
14
# apt-get update && apt-get -t stretch-backports install qtpass
ben's avatar
ben committed
15 16 17 18 19
```

### Importer la clé privée
Cette clé est sauvée sur le serveur dans fichiers/Informatique/pass/pgp, mais peut au besoin être réexportée depuis un autre ordinateur de cette façon :
```
ben's avatar
ben committed
20
$ gpg --export-secret-key 3DA5264E > /media/fichiers/Informatique/pass/pgp/contact_484A85923DA5264E_private.key
ben's avatar
ben committed
21 22 23 24
```

Sur la machine distante, au nom de l'utilisateur à qui on veut donner l'accès :
```
ben's avatar
ben committed
25 26 27 28 29 30 31 32 33
$ gpg --import /media/fichiers/Informatique/pass/pgp/contact_484A85923DA5264E_private.key
```

Accorder confiance à cette nouvelle clé
```
gpg --edit-key 484A85923DA5264E
gpg> trust
5 (confiance ultime)
gpg> q
ben's avatar
ben committed
34 35
```

ben's avatar
ben committed
36 37
Vérifier que la clé a bien été importée
```
ben's avatar
ben committed
38
gpg --list-secret-keys
ben's avatar
ben committed
39
```
ben's avatar
ben committed
40

ben's avatar
ben committed
41 42 43 44 45 46 47
### Connexion avec le serveur git

Pour gitlab.domainepublic.net, il est nécessaire de changer le port ssh en ajoutant ces lignes dans `/home/$USER/.ssh/config/`
```
Host domainepublic.net
   Port 3265
```
ben's avatar
ben committed
48

ben's avatar
ben committed
49 50 51 52 53
Ajouter la clé publique SSH au projet, via la page deploy keys de gitlab. La clé peut s'exporter de la manière suivante :
```
cat .ssh/id_rsa.pub > /media/fichiers/Informatique/pass/pgp/rsa_USER_HOST.txt
```

ben's avatar
ben committed
54

ben's avatar
ben committed
55
Paramétrer l'accès à une clé GPG. Ici, B25790B6 est l'identifiant de la clé associée à la boîte mail contact. La clé publique de cet utilisateur doit être enregistrée au préalable sur le profil utilisateur gitlab en lien avec le projet correspondant : https://gitlab.domainepublic.net
ben's avatar
ben committed
56
```
ben's avatar
ben committed
57
pass init -p at/bureau "484A85923DA5264E"
ben's avatar
ben committed
58 59 60 61
```
On le relie ensuite au dépôt git en ligne
```
pass git init
ben's avatar
ben committed
62
pass git remote add origin git@gitlab.domainepublic.net:amisdelaterre/at.pass.git
ben's avatar
ben committed
63 64 65 66
pass git branch --set-upstream-to=origin/master master
pass git pull origin master --allow-unrelated-histories
```

ben's avatar
ben committed
67 68
pass git remote set-url origin git@gitlab.domainepublic.net:bn/ben.pass.git

ben's avatar
ben committed
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 113 114 115
## Utilisation
Si l'ordinateur dispose d'un serveur graphique, on peut utiliser [qtpass](https://qtpass.org/), une interface graphique pour visualiser et éditer la base de données.

`pass` affiche une arborescance des mots de passes enregistrés.
```
$ pass
Amis de la Terre
├── mailing-lists @listes.amisdelaterre.be
│   ├── Bureau
│   │   ├── at-newsletter@listes.amisdelaterre.be
│   │   ├── at-presse@listes.amisdelaterre.be
│   │   └── noyaux@listes.amisdelaterre.be
│   ├── Esneux
│   │   └── locale-esneux-sympa@listes.amisdelaterre.be
│   ├── Fagnes
│   │   └── locale-fagnes-sympa@listes.amisdelaterre.be
│   ├── Herve
│   │   ├── locale-paysdeherve-jdlp@listes.amisdelaterre.be
│   │   ├── locale-paysdeherve-sympa@listes.amisdelaterre.be
│   │   ├── reg.lg.gestion.verger@listes.amisdelaterre.be
│   │   └── reg.lg.verger.parrains@listes.amisdelaterre.be
│   └── Namur
│       ├── locale-namur-noyau@listes.amisdelaterre.be
│       └── locale-namur-sympa@listes.amisdelaterre.be
```

En précisant le chemin du mot de passe, il l'affichera, déchiffré :
```
pass dossier/entrée
sup3rh4x3rizmynam3
```
Pour ajouter une nouvelle entrée, on utilise `insert`
```
pass insert dossier/entrée
mkdir: création du répertoire '/root/.password-store/dossier'
Enter password for dossier/entrée: 
```
On peut également générer un mot de passe aléatoire avec `generate`. Avec les options `15`, `-n` et `-c`, le mot de passe sera de 15 caractères, sans caractère spéciaux et copié dans le presse-papier.
```
pass generate dossier/entrée 15 -n -c
```
Enfin, on peut supprimer une entrée avec `rm` ou la déplacer avec `mv`.

## Sources :
- https://www.passwordstore.org
- https://git.zx2c4.com/password-store/about/#EXTENDED%20GIT%20EXAMPLE
- https://qtpass.org
ben's avatar
ben committed
116
- https://stackoverflow.com/questions/10904339/github-fatal-remote-origin-already-exists#10904450
ben's avatar
ben committed
117