<commit_before>Commander Plugin for Generating/Rotating SSH keys
----

This plugin generates/rotates SSH keys for the provided user on the local system.  The 'Login' field of the Keeper record defines the user account which is being rotated. The 'password' field is used as the optional passphrase to encrypt the private key.  The resulting SSH key information is stored in custom fields and sync'd to your Keeper vault.  Any Keeper user or Keeper Shared Folder associated with the record is updated instantly.

### Dependencies 

1) Add the following Custom Fields to the Keeper record

```
Name: cmdr:plugin
Value: sshkey
```

2) The plugin will use the 'Login' field as the username of the 'passwd' command

### Optional custom fields

To specify the rules for password complexity to use add a custom field

```
Name: cmdr:rules
Value: 4,6,3,8
```

This would generate a new password with :
```
  4 uppercase characters
  6 lowercase characters
  3 numerical characters
  8 punctuation characters
```

### Auto-command execution

You can automate SSH key rotations using this plugin

Example:

```
{                                                                               
    "debug":false,
    "server":"https://keeperapp.com/v2/",
    "user":"<EMAIL>",<commit_msg>sshkey plugin README.md<commit_after>Commander Plugin for Generating/Rotating SSH keys
----

This plugin generates/rotates SSH keys for the provided user on the local system.  The 'Login' field of the Keeper record defines the user account which is being rotated. The 'password' field is used as the optional passphrase to encrypt the private key.  The resulting SSH key information is stored in custom fields and sync'd to your Keeper vault.  Any Keeper user or Keeper Shared Folder associated with the record is updated instantly.

### Dependencies 

1) Add the following Custom Fields to the Keeper record

```
Name: cmdr:plugin
Value: sshkey
```

2) The plugin will use the 'Login' field as the username of the 'passwd' command

### Optional custom fields

To specify the rules for password complexity to use add a custom field

```
Name: cmdr:rules
Value: 4,6,3,8
```

This would generate a new password with :
```
  4 uppercase characters
  6 lowercase characters
  3 numerical characters
  8 punctuation characters
```

To upgrade .ssh/authorized_keys file with the new public key add the following custom field.
```
Name: cmdr:host
Value: host.domain.net
```
There might be multiple custom fields with host names.

### Auto-command execution

You can automate SSH key rotations using this plugin

Example:

```
{                                                                               
    "debug":false,
    "server":"https://keeperapp.com/v2/",
    "user":"<EMAIL>",
{'fraction_non_alphanumeric': 0.0725163161711385, 'fraction_numerical': 0.007976794778825236, 'mean_word_length': 3.2186544342507646, 'pattern_counts': {'":': 6, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3617257', 'n_tokens_mistral': 751, 'n_tokens_neox': 690, 'n_words': 352}