Documentação da API Alojamento web acessível a todos Visitar a LWS

Listar as chaves SSH

GET /api/v1/ssh-keys

operationIdgetSshKeys

Nível exigido
Apenas leitura
Quota
leitura, 3600 chamadas por hora

Chaves públicas registadas na conta. Uma chave ativa é instalada automaticamente na criação ou na reinstalação de um VPS; podem estar ativas várias chaves ao mesmo tempo. As chaves nunca são injetadas num VPS em funcionamento.

comment é o comentário incluído na chave (fim da linha do ficheiro .pub), null se não existir. fingerprint é a impressão digital SHA-256 no formato de ssh-keygen -l; fingerprint_md5 é a que o painel apresenta. O conteúdo da chave não é devolvido. Lista não paginada.

weak assinala uma chave antiga que hoje seria recusada ao ser adicionada (RSA com menos de 2048 bits). Continua listada para que a possa desativar ou eliminar, mas deixou de ser instalada na reinstalação.

Respostas

200

Chaves da conta

{
  "data": [
    {
      "id": "45",
      "type": "ssh-rsa",
      "comment": "admin@poste",
      "active": true,
      "fingerprint": "SHA256:yrIpfrj69U/dExDvReFvge3eT3HE3clIbNsojIr/K4s",
      "fingerprint_md5": "a9:68:50:73:c8:3b:8b:b5:70:ae:fb:ad:50:3b:3e:46",
      "weak": false
    },
    {
      "id": "38",
      "type": "ssh-ed25519",
      "comment": "test-ed25519",
      "active": false,
      "fingerprint": "SHA256:lpEBpHL5EO65b9cDXg8YjfqlnovHfCn+3faPLPbfnZI",
      "fingerprint_md5": "ab:c7:15:6a:9a:4e:fb:02:1b:b8:ab:3f:e5:41:67:a2",
      "weak": false
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 2,
    "total": 2,
    "total_pages": 1
  }
}
Campos da resposta 13
  • data object[]
    obrigatório
  • id string

    Exemplo: 47

  • type string

    Exemplo: ssh-ed25519

  • comment string

    Comentário incluído na chave

  • fingerprint string

    Impressão digital SHA-256, formato ssh-keygen -l

  • fingerprint_md5 string

    Impressão digital MD5, a que o painel apresenta

  • active boolean

    Instalada automaticamente na criação ou reinstalação de um VPS

  • weak boolean

    Chave antiga que hoje seria recusada ao ser adicionada (RSA com menos de 2048 bits): listada para poder ser desativada ou eliminada, recusada na reinstalação

  • meta object

    Paginação. As listas não paginadas devolvem tudo e meta reflete o número devolvido.

    PaginationMeta

    obrigatório
  • page integer (int64)

    Página devolvida

    Exemplo: 1

  • per_page integer (int64)

    Tamanho da página

    Exemplo: 25

  • total integer (int64)

    Número total de elementos

    Exemplo: 887

  • total_pages integer (int64)

    Número total de páginas

    Exemplo: 36

401

Autenticação recusada: invalid_token — cabeçalho Authorization ausente ou mal formado, ou chave desconhecida; access_disabled — acesso à API cortado para esta conta, ou serviço de API momentaneamente suspenso pela LWS.

cabeçalho Authorization ausente ou mal formado, ou chave desconhecida

{
  "type": "https://docs.lws.fr/kvm/errors/invalid-token",
  "title": "Authentification invalide",
  "status": 401,
  "code": "invalid_token",
  "detail": "Clé inconnue ou révoquée.",
  "request_id": "3f9a1c07b2e45d18"
}

acesso à API cortado para esta conta, ou serviço de API momentaneamente suspenso pela LWS

{
  "type": "https://docs.lws.fr/kvm/errors/access-disabled",
  "title": "Accès API désactivé",
  "status": 401,
  "code": "access_disabled",
  "detail": "L'accès API est désactivé pour ce compte. Réactivez-le depuis la page « API / MCP » du panel.",
  "request_id": "3f9a1c07b2e45d18"
}
Campos da resposta 18
  • type string (uri)

    Exemplo: https://docs.lws.fr/kvm/errors/vm-not-found

    obrigatório
  • title string

    Título curto

    Exemplo: VPS introuvable

    obrigatório
  • status integer (int64)

    Estado HTTP

    Exemplo: 404

    obrigatório
  • code string

    Código de máquina estável (ver «Erros» em Primeiros passos)

    Exemplo: vm_not_found

    obrigatório
  • detail string

    Mensagem detalhada

    Exemplo: Aucun VPS 999999 sur ce compte.

    obrigatório
  • request_id string

    Identificador do pedido, a comunicar ao suporte

    Exemplo: 3f9a1c07b2e45d18

    obrigatório
  • errors object

    validation_failed: mensagem por parâmetro incorreto

  • required_level string

    insufficient_scope: nível exigido pela operação

    um de: read, exploitation, full

  • task_id string

    task_already_running: tarefa em curso neste VPS

    Exemplo: tsk_000002d5

  • family string

    rate_limited: família de quota esgotada

    um de: read, mutation, heavy

  • limit integer (int64)

    rate_limited: limite horário da família

  • retry_after integer (int64)

    rate_limited: segundos a aguardar

  • lock string

    server_locked: bloqueio aplicado pelo hipervisor (backup, snapshot, suspended…)

    Exemplo: snapshot

  • reason string

    server_locked: operation_in_progress, há uma operação em curso, tente novamente após Retry-After; suspended, o VPS está em hibernação, inicie-o primeiro; support_notified, bloqueio anómalo, a equipa LWS foi avisada e está a intervir

    um de: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: natureza da intervenção, início e fim previsto (null para um incidente)

  • kind string

    um de: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
403

Acesso recusado: ip_not_allowed — endereço de chamada não autorizado.

{
  "type": "https://docs.lws.fr/kvm/errors/ip-not-allowed",
  "title": "Adresse non autorisée",
  "status": 403,
  "code": "ip_not_allowed",
  "detail": "L'adresse 203.0.113.10 ne figure pas parmi les adresses autorisées de ce compte.",
  "request_id": "3f9a1c07b2e45d18"
}
Campos da resposta 18
  • type string (uri)

    Exemplo: https://docs.lws.fr/kvm/errors/vm-not-found

    obrigatório
  • title string

    Título curto

    Exemplo: VPS introuvable

    obrigatório
  • status integer (int64)

    Estado HTTP

    Exemplo: 404

    obrigatório
  • code string

    Código de máquina estável (ver «Erros» em Primeiros passos)

    Exemplo: vm_not_found

    obrigatório
  • detail string

    Mensagem detalhada

    Exemplo: Aucun VPS 999999 sur ce compte.

    obrigatório
  • request_id string

    Identificador do pedido, a comunicar ao suporte

    Exemplo: 3f9a1c07b2e45d18

    obrigatório
  • errors object

    validation_failed: mensagem por parâmetro incorreto

  • required_level string

    insufficient_scope: nível exigido pela operação

    um de: read, exploitation, full

  • task_id string

    task_already_running: tarefa em curso neste VPS

    Exemplo: tsk_000002d5

  • family string

    rate_limited: família de quota esgotada

    um de: read, mutation, heavy

  • limit integer (int64)

    rate_limited: limite horário da família

  • retry_after integer (int64)

    rate_limited: segundos a aguardar

  • lock string

    server_locked: bloqueio aplicado pelo hipervisor (backup, snapshot, suspended…)

    Exemplo: snapshot

  • reason string

    server_locked: operation_in_progress, há uma operação em curso, tente novamente após Retry-After; suspended, o VPS está em hibernação, inicie-o primeiro; support_notified, bloqueio anómalo, a equipa LWS foi avisada e está a intervir

    um de: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: natureza da intervenção, início e fim previsto (null para um incidente)

  • kind string

    um de: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
429

Quota excedida: rate_limited — quota horária da família esgotada.

{
  "type": "https://docs.lws.fr/kvm/errors/rate-limited",
  "title": "Quota dépassé",
  "status": 429,
  "code": "rate_limited",
  "detail": "Quota dépassé pour les opérations de type « read » : 3600 appels par heure. Réessayez dans 37 seconde(s).",
  "request_id": "3f9a1c07b2e45d18",
  "family": "read",
  "limit": 3600,
  "retry_after": 37
}
Campos da resposta 18
  • type string (uri)

    Exemplo: https://docs.lws.fr/kvm/errors/vm-not-found

    obrigatório
  • title string

    Título curto

    Exemplo: VPS introuvable

    obrigatório
  • status integer (int64)

    Estado HTTP

    Exemplo: 404

    obrigatório
  • code string

    Código de máquina estável (ver «Erros» em Primeiros passos)

    Exemplo: vm_not_found

    obrigatório
  • detail string

    Mensagem detalhada

    Exemplo: Aucun VPS 999999 sur ce compte.

    obrigatório
  • request_id string

    Identificador do pedido, a comunicar ao suporte

    Exemplo: 3f9a1c07b2e45d18

    obrigatório
  • errors object

    validation_failed: mensagem por parâmetro incorreto

  • required_level string

    insufficient_scope: nível exigido pela operação

    um de: read, exploitation, full

  • task_id string

    task_already_running: tarefa em curso neste VPS

    Exemplo: tsk_000002d5

  • family string

    rate_limited: família de quota esgotada

    um de: read, mutation, heavy

  • limit integer (int64)

    rate_limited: limite horário da família

  • retry_after integer (int64)

    rate_limited: segundos a aguardar

  • lock string

    server_locked: bloqueio aplicado pelo hipervisor (backup, snapshot, suspended…)

    Exemplo: snapshot

  • reason string

    server_locked: operation_in_progress, há uma operação em curso, tente novamente após Retry-After; suspended, o VPS está em hibernação, inicie-o primeiro; support_notified, bloqueio anómalo, a equipa LWS foi avisada e está a intervir

    um de: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: natureza da intervenção, início e fim previsto (null para um incidente)

  • kind string

    um de: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
502

Dependência inacessível: upstream_unavailable — API de gestão das chaves inacessível.

{
  "type": "https://docs.lws.fr/kvm/errors/upstream-unavailable",
  "title": "Service momentanément indisponible",
  "status": 502,
  "code": "upstream_unavailable",
  "detail": "La liste des clés SSH n'a pas pu être obtenue. Réessayez dans quelques instants.",
  "request_id": "3f9a1c07b2e45d18"
}
Campos da resposta 18
  • type string (uri)

    Exemplo: https://docs.lws.fr/kvm/errors/vm-not-found

    obrigatório
  • title string

    Título curto

    Exemplo: VPS introuvable

    obrigatório
  • status integer (int64)

    Estado HTTP

    Exemplo: 404

    obrigatório
  • code string

    Código de máquina estável (ver «Erros» em Primeiros passos)

    Exemplo: vm_not_found

    obrigatório
  • detail string

    Mensagem detalhada

    Exemplo: Aucun VPS 999999 sur ce compte.

    obrigatório
  • request_id string

    Identificador do pedido, a comunicar ao suporte

    Exemplo: 3f9a1c07b2e45d18

    obrigatório
  • errors object

    validation_failed: mensagem por parâmetro incorreto

  • required_level string

    insufficient_scope: nível exigido pela operação

    um de: read, exploitation, full

  • task_id string

    task_already_running: tarefa em curso neste VPS

    Exemplo: tsk_000002d5

  • family string

    rate_limited: família de quota esgotada

    um de: read, mutation, heavy

  • limit integer (int64)

    rate_limited: limite horário da família

  • retry_after integer (int64)

    rate_limited: segundos a aguardar

  • lock string

    server_locked: bloqueio aplicado pelo hipervisor (backup, snapshot, suspended…)

    Exemplo: snapshot

  • reason string

    server_locked: operation_in_progress, há uma operação em curso, tente novamente após Retry-After; suspended, o VPS está em hibernação, inicie-o primeiro; support_notified, bloqueio anómalo, a equipa LWS foi avisada e está a intervir

    um de: operation_in_progress, suspended, support_notified

  • maintenance object

    server_maintenance: natureza da intervenção, início e fim previsto (null para um incidente)

  • kind string

    um de: works, incident

  • started_at string (date-time)
  • expected_end string (date-time)
Mostrar os exemplos de código e a consola de testes
GET /ssh-keys
LWS_API_KEY='…'curl -X GET \  "https://panelkvm.lwspanel.com/api/v1/ssh-keys" \  -H "Authorization: Bearer $LWS_API_KEY"
$lwsApiKey = '…';$ch = curl_init("https://panelkvm.lwspanel.com/api/v1/ssh-keys");curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, [    "Authorization: Bearer " . $lwsApiKey,]);$res = json_decode(curl_exec($ch), true);
import requestsLWS_API_KEY = "…"res = requests.get(    "https://panelkvm.lwspanel.com/api/v1/ssh-keys",    headers={        "Authorization": "Bearer " + LWS_API_KEY,    },)print(res.json())
const LWS_API_KEY = "…";const res = await fetch("https://panelkvm.lwspanel.com/api/v1/ssh-keys", {  method: "GET",  headers: {    "Authorization": "Bearer " + LWS_API_KEY,  },});const data = await res.json();
lwsApiKey := "…"req, _ := http.NewRequest("GET",    "https://panelkvm.lwspanel.com/api/v1/ssh-keys", nil)req.Header.Set("Authorization", "Bearer "+lwsApiKey)resp, err := http.DefaultClient.Do(req)