TOPICS
API

API: SSH Keys

The sshkey category lets you add SSH keys so that VMs can be provisioned with key-based authentication.

Action Required Parameters Optional Parameters
sshkey/add label, sshkey None
sshkey/list None None
sshkey/remove key_id None

sshkey/add

Required parameters:

  • label - a label for this SSH key.
  • sshkey - the public key data, e.g. 'ssh-rsa AAAAB3NzaC1yc2EA ... aPJTJDEREcZ3r'

Here is an example adding the LunaNode staff SSH key at https://www.lunanode.com/sshkey.txt:

Endpoint: sshkey/add
label=lunanode
sshkey=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/YL5kEqOHxWmSAneuhEkD6eEgbXh5ivE2XGQJaKvfWkaZ8n3fkPe/Um54Oaa0isSXKzslEEIvataysrk7QUgfsHfrNd/CayQmy+6xRj8sZjN92gHlA27rhJX007lG9O6VAVXBOtnlqdxbCh/MJkZWhLgJ5suoeNx1DIeUXjE3yw8jYbLBdDDW/zr+ewxJ9nxEtdz3TRnxoRST889ZzImS6Mz/7OxnibWzALyP0LXqM4WBmipdB/eRx1dQnIaWGgN+NTMlf0FGQCFmAT/veS75d+ZO310QdCz1dmOuW07+ECCnkqEmGUecv9Eli0DIw5Qa6w+ggEvaPJTJDEREcZ3r

{
    "key_id": "1862",
    "success": "yes"
}

sshkey/list

Endpoint: sshkey/list

{
    "0": {
        "id": "1862",
        "name": "lunanode",
        "value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/YL5kEqOHxWmSAneuhEkD6eEgbXh5ivE2XGQJaKvfWkaZ8n3fkPe/Um54Oaa0isSXKzslEEIvataysrk7QUgfsHfrNd/CayQmy+6xRj8sZjN92gHlA27rhJX007lG9O6VAVXBOtnlqdxbCh/MJkZWhLgJ5suoeNx1DIeUXjE3yw8jYbLBdDDW/zr+ewxJ9nxEtdz3TRnxoRST889ZzImS6Mz/7OxnibWzALyP0LXqM4WBmipdB/eRx1dQnIaWGgN+NTMlf0FGQCFmAT/veS75d+ZO310QdCz1dmOuW07+ECCnkqEmGUecv9Eli0DIw5Qa6w+ggEvaPJTJDEREcZ3r "
    },
    "success": "yes"
}

Response notes:

  • The keys in the top-level dictionary are array indices and can be ignored; it is not the SSH key ID. To iterate over all key objects, take all the values of the top-level object except when key is 'success'.
  • The SSH key ID is the value of the id attribute in a key object. For instance, the ID above is 1862.

sshkey/remove

Required parameters:

  • key_id - the SSH key ID.
Endpoint: sshkey/remove
key_id=1862

{"success": "yes"}