Skip to main content

Command line tools to compress and encrypt your keys

Project description

Keystore - keeps your keys in one place.
========================================

THIS IS AN EXPERIMENT [DO NOT USE IN PRODUCTION]
------------------------------------------------
Encrypt your keys before syncing them to a local backup, or "the cloud".

Download it later and decrypt it yourself.

$ keystore-save
$ mkdir keys
$ keystore-load --copy-to keys

Prerequisites
-------------
Python 3.4+.

Install
-------
You can install straight from `pip`.

pip install keystore

Before using it for the first time, you will need to setup a `~/.keystorerc` in
your home directory.

{
"keystore": "~/Dropbox/keystore",
"files": [
"~/.ssh",
"~/.gnupg/gpg-agent.conf",
"~/.gnupg/gpg.conf",
"~/.gnupg/private-keys-v1.d",
"~/.gnupg/pubring.gpg",
"~/.gnupg/secring.gpg",
"~/.gnupg/trustdb.gpg",
],
"verbose": true
}

Example usage
-------------

**Saving keys:**

$ keystore-save

Inspecting ~/.ssh:
Adding /Users/spaxe/.ssh/id_rsa ...
Adding /Users/spaxe/.ssh/id_rsa.pub ...
Adding /Users/spaxe/.ssh/known_hosts ...
Added 3 key(s) to keystore.

This passphrase is used to decrypt your keystore. Please remember it.
Please enter a passphrase:
Please verify your passphrase:
Passphrase accepted. Encrypting ...
Keyring successfully created:
AwGd2MtDWRkOFdyJoRZTdFApvKnoBQ2PXsqqE
[...]

**Loading keys:**

$ keystore-load

Located encrypted keystore at ~/Dropbox/keystore:
Please enter the passphrase:
Keyring decrypted successfully.
File /Users/spaxe/.ssh/id_rsa exists. Are you sure you want to overwrite? (y)/n:
Writing key to /Users/spaxe/.ssh/id_rsa ...
File /Users/spaxe/.ssh/id_rsa.pub exists. Are you sure you want to overwrite? (y)/n:
Writing key to /Users/spaxe/.ssh/id_rsa.pub ...
File /Users/spaxe/.ssh/known_hosts exists. Are you sure you want to overwrite? (y)/n:
Writing key to /Users/spaxe/.ssh/known_hosts ...
Keyring loaded. Restored 3 keys.

**Loading keys to the same directory (useful for a new machine):**

$ mkdir keys
$ keystore-load --copy-to keys

Located encrypted keystore at ~/Dropbox/keystore:
Please enter the passphrase:
Keyring decrypted successfully.
Writing key to /Users/spaxe/keys/id_rsa ...
Writing key to /Users/spaxe/keys/id_rsa.pub ...
Writing key to /Users/spaxe/keys/known_hosts ...
Keyring loaded. Restored 3 keys.

**Running tests:**

python3 test.py

Known Security Issues
---------------------
This library uses `simple-crypt`, which was last updated in 2015.
[You can read up about warnings for security concerns here](https://github.com/andrewcooke/simple-crypt#warnings).

License
-------
© Xavier Ho <contact@xavierho.com>

License under MIT License.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for keystore, version 0.2.3
Filename, size File type Python version Upload date Hashes
Filename, size keystore-0.2.3-py3-none-any.whl (9.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size keystore-0.2.3.tar.gz (6.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page