util.keymaster

Command line for generating SSH keys and self signed certs for a project.

Usage no npm install needed!

<script type="module">
  import utilKeymaster from 'https://cdn.skypack.dev/util.keymaster';
</script>

README

util.keymaster

Command line for generating SSH keys and self signed certs for a project.

build analysis code style: prettier testing NPM

This module helps to organize keys and certs that are used in development and testing of an application. It creates:

  • Self-signed certs
  • RSA keys for build accounts
  • Generation of a random hash

It requires the following command line dependencies to generate the keys:

Installation

This module uses yarn to manage dependencies and run scripts for development.

To install as a global package and cli:

$ yarn global add util.keymaster

To install as a development dependency with cli:

$ yarn add --dev util.keymaster

To build the app and run all tests:

$ yarn run all

Usage

A new cli command named keymaster is available once installed.

Create a new repository

keymaster --init

This will create a new repository located in ~/.keymaster. This is an empty repo with two sub directories: backup and base. The backup directory contains a backup of the last set of keys before any operation that creates new keys/certs. Initially this is empty. The base directory is the first set of keys that were created in the repository. This is only populated automatically when --base is used with --init.

Note that if the default directory ~/.keymaster exists, then this process will terminate with a warning.

Create a new repository with a base set of files

keymaster --init --base=~/some/directory/with/keys

This will create a new empty repository (like the first example). It will copy the contents of the base directory into the new repo. This is a way to use seed a new repository with a base set of files.

Create self-signed certs

keymaster --certs

The basic cert setup creates {env}.key and {env}.pem. There are three types of environment used: development, testing, and production. These are the defaults set in package.json. When the option above is executed it will create new keys:

development.key & development.pem
testing.key & testing.pem
production.key & production.pem

Create self-signed cert for development only

keymaster --certs --env=development

This would only create the keys development.key and development.pem in the repo.

Create ssh keys for default user list

keymaster --keys

This will generate SSH keys for users. The default users are buildmaster and centos. The names of the keys are:

id_rsa.buildmaster & id_rsa.buildmaster.pub
id_rsa.centos & id_rsa.centos.pub

Create ssh keys for a user named 'foo'

keymaster --keys --users=foo

The names of the keys after this call would be:

id_rsa.foo & id_rsa.foo.pub

Create a random hash file

keymaster --pwhash

Creates a random hash file named pw.hash. By default this is a file with 32 random alphanumeric bytes.

Backup the current repository

keymaster --backup

This facility it called automatically when new keys/certs are created. If one wants to force a backup, then this option is used.

Create certs, keys, and password hash

keymaster --init
keymaster --certs --keys --pwhash

This will create a new default repository (in ~/.keymaster) assuming it doesn't exist. The second command will create new versions of the certs, the keys, and a new password hash file.