# akeyra :cherry_blossom:
Agent for [Sakeyra](https://github.com/LaMethode/sakeyra)

[![Python version](https://img.shields.io/pypi/pyversions/akeyra.svg)](https://img.shields.io/pypi/pyversions/akeyra.svg)
[![PyPI version](https://img.shields.io/pypi/v/akeyra.svg)](https://img.shields.io/pypi/v/akeyra.svg)
[![Build Status](	https://img.shields.io/travis/LaMethode/akeyra.svg?branch=master)](https://img.shields.io/travis/LaMethode/akeyra)

[![JWT](https://jwt.io/assets/badge-compatible.svg)](https://jwt.io/)

## What is it?
Akeyra is the client-side of Sakeyra.  
It serves the purpose of creating/updating `~/.ssh/authorized_keys`  
It also create users that don't exist on your server but that are in the key-bundle.

## How to install ?
Use Pip `pip install akeyra`

## How to use it?
You have to fill the configuration file (see below) to connect to your SAKman Server.  
Then you just have to run `akeyra` as root.  
Make sure you have a Cron somewhere to update as frequently as possible.

## Options
usage: akeyra [-h] [-H HOST] [-E ENV] [-K KEY] [-P PROXY] [-F FILE] [-D]

You can provide all informations in CLI, use the basic configfile
(/etc/akeyra.cfg), or an alternative one. If nothing is passed by CLI, then
the basic configfile will be used.

CLI > CLI-File > base file

optional arguments:
* -h, --help            show this help message and exit
* -H HOST, --host HOST    Key Server
* -E ENV, --env ENV       Environment
* -K KEY, --key KEY       Secret key
* -P PROXY, --proxy PROXY Proxy
* -F FILE, --cnf FILE     Alt Conffile
* -D, --dry               Dry run

If you need to use a proxy, you either set environment variable like
http_proxy or use proxy in the configfile.


### Configuration file `/etc/akeyra.cfg`
```
[agent]
host =
key =
environment =
proxy =
```

### Format between Akeyra and Sakeyra (decode)
```json
{
  "environment": "rec",
  "users": [
    {
    "user1": [
        {"email": "userkey1@test.com", "name": "userkey1", "pubkey": "laclepubliquedeuserkey1"},
        {"email": "userkey2@test.com", "name": "userkey2", "pubkey": "laclepubliquedeuserkey2"}
      ]
    },
    {
      "user2": [
        {"email": "userkey1@test.com", "name": "userkey1", "pubkey": "laclepubliquedeuserkey1"},
        {"email": "userkey2@test.com", "name": "userkey2", "pubkey": "laclepubliquedeuserkey2"}
      ]
    }
  ],
  "pub_date": "2017-10-18T17:15:46.799689"
  }
```
