SSH ключи


Возможные операции:


Создание

URL: /api/cvds/v1/ssh-keys/
Метод: POST
Результат: JSON

Параметры запроса:

  • title - название ключа
  • pubkey - публичная часть SSH ключа

Пример запроса:

curl -v -XPOST https://panel.netangels.ru/api/cvds/v1/ssh-keys/ \
    --header 'Authorization: Token iLuoWRJey9BJik71kPHt' \
    -d 'title=john@workspace' \
    --data-urlencode "pubkey=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQConETFfAqUqP71zhBPmiuB3xaODFap0tI+rvAfQwejdT9u8cGw4pUqwnniyIL7DP+2/vsqCjyZdQ2qtsYmRtT30k5ClH0Krpg+iTFz5QynYNmOuGn32CGFGmJTNjSSIKVxKPtuakSCRfXZBFuFkXZeq/qFzoFJZX0fK2NgfPxEW959HGL0AWohSgozTT/N+clYU1XluCGhQRZo9WBc8xFE5oVHgo56YPkisuLxEzE8Ipc4K1vA04pn9jULaXn3tiHUVG11+hJV3Yr30qHpjBJG/oNJOOBFFPbejAHCgiwpCkc6ZnbLb0SWSQrIp1qICcvMT8GNRYUYIr/zWcmPA/cn"

Пример успешного ответа:

{
    "fingerprint": "41:aa:ea:a8:c5:a6:1c:26:61:fd:b5:d0:40:c0:6f:f0",
    "id": 12,
    "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQConETFfAqUqP71zhBPmiuB3xaODFap0tI+rvAfQwejdT9u8cGw4pUqwnniyIL7DP+2/vsqCjyZdQ2qtsYmRtT30k5ClH0Krpg+iTFz5QynYNmOuGn32CGFGmJTNjSSIKVxKPtuakSCRfXZBFuFkXZeq/qFzoFJZX0fK2NgfPxEW959HGL0AWohSgozTT/N+clYU1XluCGhQRZo9WBc8xFE5oVHgo56YPkisuLxEzE8Ipc4K1vA04pn9jULaXn3tiHUVG11+hJV3Yr30qHpjBJG/oNJOOBFFPbejAHCgiwpCkc6ZnbLb0SWSQrIp1qICcvMT8GNRYUYIr/zWcmPA/cn",
    "title": "john@workspace"
}

Возможные HTTP-коды возврата:

  • 201 (CREATED) - ключ создан
  • 400 (BAD REQUEST) - данные в запросе имеют неверный формат или отсутствуют обязательные параметры

При успешном создании HTTP-код будет 201 (CREATED), а заголовок Location содержит ссылку на ресурс:

Location: https://panel.netangels.ru/api/cvds/v1/ssh-keys/12/

Существует ограничение на количество запросов

2/минуту

Получение списка всех ключей

URL: /api/cvds/v1/ssh-keys/
Метод: GET
Результат: JSON

Пример запроса:

curl -XGET https://panel.netangels.ru/api/cvds/v1/ssh-keys/ \
    --header 'Authorization: Token sDZfdN8MhD4fnWVE6xyX'

Пример успешного ответа:

{
    "count": 4, 
    "next": null, 
    "previous": null, 
    "results": [
        {
            "fingerprint": "71:d2:b0:84:e4:30:9a:f7:82:ce:b2:3c:35:34:38:a9", 
            "id": 7, 
            "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD2bSlvuR4pCVY0QWG8OWAYJaJU5lmhE527NFgVrpod9UBmrre4JFN3HZNq74Gjdj40bZBL9XhnryBLRchP+T1BX47ExKYuqLZ3AM0khoFN27vpUN8Tv2kSEwSe55BOfDNrGpbcn5pwE6GcNVdWkx5BaRh1uUDpiSPmoeywuK+CtWumLOIlQz5GboAoeRIdNV/E46kL/VPxP7k2ElJZ0wdletJIGY9VgT5eqrpNsmiseA8bJZJMFNE1vwmuA3OloPzdI5jPKSF6GpezMyKPYRJFqgxXM8YVzLtb81LLz9Zn91esuLMBHj27DGaFuqbEOxN5ToXYUd45bzWY3tI9kndH", 
            "title": "oleg@home"
        }, 
        {
            "fingerprint": "14:77:df:a2:cd:1a:0c:7b:85:b4:99:62:15:bf:c8:95", 
            "id": 10, 
            "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZpGwLdTPor/BGsKvJ1Bo9rcFNQhQh2JWEKhsMWlZXxqKbViqLuVEdxridhlXMxyTkMJvGuA3uS0ZnD3tBQrmVY0CjhY1BLpn5r+ziNyzmKHetKZKQHZwoJ+4ttgHWIlzJVMMk1L4h3gX4DdUSoBkWSit96y56YXfWBcoPzeOvTXln8Pzx6k8W0MUCslDFBTRLN3pt5myQqqKuvCe0YoxYQpZUMIZ9WWa0XRPVSvImCW27igRb1Le5ebFKsORm3qCzd+EdGsbZ0mnsfC7Vk7t3gDfiwVHQcOiXDfTaqKiSIX4hUSDg0XRr6IKTkpvQJ641hWCwYCIC26CuT5PJYf85", 
            "title": "work"
        }, 
        {
            "fingerprint": "41:aa:ea:a8:c5:a6:1c:26:61:fd:b5:d0:40:c0:6f:f0", 
            "id": 11, 
            "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQConETFfAqUqP71zhBPmiuB3xaODFap0tI+rvAfQwejdT9u8cGw4pUqwnniyIL7DP+2/vsqCjyZdQ2qtsYmRtT30k5ClH0Krpg+iTFz5QynYNmOuGn32CGFGmJTNjSSIKVxKPtuakSCRfXZBFuFkXZeq/qFzoFJZX0fK2NgfPxEW959HGL0AWohSgozTT/N+clYU1XluCGhQRZo9WBc8xFE5oVHgo56YPkisuLxEzE8Ipc4K1vA04pn9jULaXn3tiHUVG11+hJV3Yr30qHpjBJG/oNJOOBFFPbejAHCgiwpCkc6ZnbLb0SWSQrIp1qICcvMT8GNRYUYIr/zWcmPA/cn", 
            "title": "max@work"
        }, 
        {
            "fingerprint": "41:aa:ea:a8:c5:a6:1c:26:61:fd:b5:d0:40:c0:6f:f0", 
            "id": 12, 
            "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQConETFfAqUqP71zhBPmiuB3xaODFap0tI+rvAfQwejdT9u8cGw4pUqwnniyIL7DP+2/vsqCjyZdQ2qtsYmRtT30k5ClH0Krpg+iTFz5QynYNmOuGn32CGFGmJTNjSSIKVxKPtuakSCRfXZBFuFkXZeq/qFzoFJZX0fK2NgfPxEW959HGL0AWohSgozTT/N+clYU1XluCGhQRZo9WBc8xFE5oVHgo56YPkisuLxEzE8Ipc4K1vA04pn9jULaXn3tiHUVG11+hJV3Yr30qHpjBJG/oNJOOBFFPbejAHCgiwpCkc6ZnbLb0SWSQrIp1qICcvMT8GNRYUYIr/zWcmPA/cn", 
            "title": "john@workspace"
        }
    ]
}

Существует ограничение на количество запросов

200/минуту

Получение информации по ключу

URL: /api/cvds/v1/ssh-keys/<id>/
Метод: GET
Результат: JSON

Пример запроса:

curl -XGET https://panel.netangels.ru/api/cvds/v1/ssh-keys/7/ \
    --header 'Authorization: Token sDZfdN8MhD4fnWVE6xyX'

Пример успешного ответа:

{
    "fingerprint": "71:d2:b0:84:e4:30:9a:f7:82:ce:b2:3c:35:34:38:a9", 
    "id": 7, 
    "pubkey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD2bSlvuR4pCVY0QWG8OWAYJaJU5lmhE527NFgVrpod9UBmrre4JFN3HZNq74Gjdj40bZBL9XhnryBLRchP+T1BX47ExKYuqLZ3AM0khoFN27vpUN8Tv2kSEwSe55BOfDNrGpbcn5pwE6GcNVdWkx5BaRh1uUDpiSPmoeywuK+CtWumLOIlQz5GboAoeRIdNV/E46kL/VPxP7k2ElJZ0wdletJIGY9VgT5eqrpNsmiseA8bJZJMFNE1vwmuA3OloPzdI5jPKSF6GpezMyKPYRJFqgxXM8YVzLtb81LLz9Zn91esuLMBHj27DGaFuqbEOxN5ToXYUd45bzWY3tI9kndH", 
    "title": "oleg@home"
}

Описание полей:

  • title - название ключа
  • pubkey - публичная часть SSH ключа

Удаление ключа

URL: /api/cvds/v1/ssh-keys/<id>/
Метод: DELETE
Результат: JSON

Пример запроса:

curl -XDELETE https://panel.netangels.ru/api/cvds/v1/ssh-keys/7/  \
    --header "Authorization: Token Zd4gON8ghKn7rD2ltbYl"

При успешном запросе сервер вернет HTTP-код 204 (NO CONTENT)