Skip to main content

pass-export

This is a command line tool to export and import passwords from/to pass. The passwords are exported to symmetrically encrypted files so they are independent of your private key. You can use these exported files for making backups or to copy them to another computer.

$ pass
Password Store
├── bar
└── foo
$ pass-export
Please insert a password to encrypt the exported files: 
Please reenter the password: 
exported-passwords_2022-08-05/bar.gpg
exported-passwords_2022-08-05/foo.gpg

You can decrypt a password with

$ gpg -d exported-passwords_2022-08-05/foo.gpg

You can copy the exported passwords to a new computer and import them into a new password store

$ gpg --quick-gen-key pass default encrypt never
$ pass init pass
$ pass-import exported-passwords_2022-08-05
Please insert password to decrypt exported-passwords_2022-08-05/bar.gpg: 
imported exported-passwords_2022-08-05/bar.gpg
imported exported-passwords_2022-08-05/foo.gpg

Installation

You can install pass-export and pass-import via pip/pipx

$ pipx install pass-export

But since this is just one module you do not need to install it. You can just download and execute it. In that case you need to specify "export" or "import" as an additional first argument:

$ wget -O pass-export-import.py 'https://gitlab.com/erzo/pass-export/-/raw/master/src/pass_export/main.py'
$ python pass-export-import.py export

Requirements

This program relies on the following other programs which are called via subprocess:

  • gpg to decrypt and encrypt the passwords
  • gpgconf to restart the gpg-agent (I am temporarily changing ~/.gnupg/gpg-agent.conf so that even if you have configured gpg securely you do not need to reinsert your password for every single password.)
  • shred to remove a temporary file in which I shortly kept the password for the exported files so that you do not need to reenter it for every single password. The assumptions that shred is based upon are not valid for SSDs. Therefore I am writing the file to the path indicated by XDG_RUNTIME_DIR, hoping that it will stay in RAM instead of getting written to an SSD.

Running the tests

tox is configured to not download packages every time you run it so you can use it wen you have no internet connection, too. Instead it takes it's dependencies from the directory .package-store. This can be initialized with

$ ./release.sh --test

Afterwards you can continue to use that command or run tox directly:

tox

tox, however, is very slow. So you may prefer to run mypy and pytest manually. (The venv has been setup by release.sh.)

. venv/bin/activate
$ mypy src/pass_export/ tests/
$ pytest

License

This work is free. You can use, copy, modify, and/or distribute it under the terms of the BSD Zero Clause License, see LICENSE.

Metadata

Release files for pass-export 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pass-export 1.0.1
File Size Uploaded
pass-export-1.0.1.tar.gz 10.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pass-export 1.0.1
File Interpreter ABI Platform
pass_export-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / pass-export-1.0.1.tar.gz

Download URL pass-export-1.0.1.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3218be316c44f51c548dba1d602d1c8aad8d41e9df9f2d4b2411de245a7cfa4e
BLAKE2b-256 checksum
How to use checksums
af40958d48ce249cd9fcf0b37f69ce2af1a66bb7275e46755cc04c33e74476b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.1

Release files / pass_export-1.0.1-py3-none-any.whl

Download URL pass_export-1.0.1-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
680edfd26fb39938920a1e7e02b607dc4408fb2bfcb9c1ef192c0b966dade42b
BLAKE2b-256 checksum
How to use checksums
a04895ec0a2f186138c9c609092664f3ad8b8abc8765a94b59d6c616fce460ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.28.1

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page