Skip to content

SSHKeys

Anton Kremenetsky edited this page Aug 5, 2025 · 2 revisions

SSH Keys

SSH keys are an integral part of the Secret Manager service, which allows users to manage and deliver them to nodes.

For instance, to create a SSH key you can use the following command:

Examples:

curl --location 'http://10.20.0.2:11010/v1/secret/ssh_keys/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer MY_TOKEN' \
--data-raw '{
    "name": "my-key",
    "project_id": "00000000-0000-0000-0000-000000000000",
    "user": "ubuntu",
    "target": {
        "kind": "node",
        "node": "10000000-1000-1000-1000-000000000001"
    },
    "target_public_key": "ssh-rsa AAAABBBBCCCC user@user-pc"
}'

The main fields are:

  • name - name of the key.
  • project_id - it's a project the key belongs.
  • user - the user the key belongs.
  • target - a target where the key should be placed. The target can be different, for instance a node as in the example above.
  • target_public_key - the public key to place on the target.

When the key is delivered to the target, it is added to the authorized keys ($HOME/.ssh/authorized_keys) of the user on the target. Also it's status is set to ACTIVE.

Target

As mentioned above, the target where the key should be placed. The target can be different but most common cases are:

  • node - the target is a node.
  • set - the target is a set of nodes. [Will be added soon]

Universal agent driver

The Genesis Core contains the CP part which consists of API, builder and scheduler services. All work on the data plane is done by the Universal agent driver which is a part of the SDK.

Clone this wiki locally