Descrição
Liste todas as chaves SSH associadas à sua autorização no PAM Core, utilizando o modelo canônico da API v2. O endpoint retorna uma projeção paginada da entidade SSHKeyV2 e oferece suporte a filtragem, ordenação e projeção de campos.
Valores secretos nunca são retornados. A resposta informa apenas se há uma chave privada ou uma senha configurada, por meio dos indicadores secret.has_private_key e secret.has_password.
O equivalente na v1 continua disponível e está documentado em SSH keys. Os nomes dos campos mudam entre as duas versões: enabled na v1 é ssh_key.active na v2, tags na v1 é ssh_key.credential_tags na v2, e o identifier da v1 foi substituído pelo id atribuído pela Segura™.
Pré-requisitos
Autorização com permissão de leitura no PAM Core, concedida pelo administrador no A2A. Para mais informações, acesse Como gerenciar autorizações no A2A.
Requisição
GET /api/v2/pam/ssh-keys
Parâmetros de query
Os nomes dos filtros usam notação de ponto que espelha a estrutura da resposta. Apenas main_device_id é plano, porque referencia outra entidade por ID.
Filtros
| Campo | Tipo | Descrição |
|---|---|---|
ssh_key.key_name |
string | Filtra pelo nome da chave. Correspondência exata. |
ssh_key.username |
string | Filtra pelo nome de usuário associado à chave. Correspondência exata. |
ssh_key.active |
boolean | Filtra pelo status de ativação. Valores aceitos: true, false. |
ssh_key.credential_tags |
array[string] | Filtra por uma ou mais tags. Use valores separados por vírgula para lógica OU; repita o parâmetro para lógica E. |
main_device_id |
integer | Filtra pelo ID do dispositivo principal associado à chave. |
secret.has_private_key |
boolean | Filtra pela existência de uma chave privada configurada. Valores aceitos: true, false. |
secret.has_password |
boolean | Filtra pela existência de uma senha configurada. Valores aceitos: true, false. |
A especificação afirma que este filtro é obrigatório. O refinamento de engenharia de 2026-07-15 questionou essa decisão e ela nunca foi fechada. Todos os demais filtros são opcionais.
Solicitar um valor secreto por meio da projeção de campos é rejeitado. Consulte a seção Erros.
Ordenação
sort_by aceita um ou mais campos da resposta e os valida contra uma lista permitida. Campos inválidos são rejeitados. Para o formato do parâmetro, a sintaxe de direção e a precedência entre múltiplos campos, consulte API v2 - Conventions and shared behaviors.
Paginação
| Campo | Tipo | Descrição |
|---|---|---|
page |
integer | Número da página. Padrão: 1. |
limit |
integer | Resultados por página. Padrão: 50. Máximo: 200. |
Exemplo de requisição
GET {{url}}/api/v2/pam/ssh-keys?ssh_key.active=true&limit=50
Resposta
HTTP/1.1 200 OK
Exemplo de corpo da resposta
{
"data": [
{
"id": "201",
"key_name": "prod-deploy-key",
"username": "deploy-user",
"active": true,
"main_device": { "id": "55", "hostname": "db-prod-01" },
"credential_tags": ["prod", "ci-cd"],
"has_private_key": true,
"has_password": false,
"last_used_at": "2026-01-29T12:34:56Z"
}
],
"meta": {
"pagination": {
"page": 1,
"limit": 50,
"total_items": 85,
"total_pages": 2
},
"links": {
"self": "/api/v2/pam/ssh-keys?page=1&limit=50",
"first": "/api/v2/pam/ssh-keys?page=1&limit=50",
"next": "/api/v2/pam/ssh-keys?page=2&limit=50",
"last": "/api/v2/pam/ssh-keys?page=2&limit=50"
}
}
}
A projeção da listagem é plana. Cada item carrega os campos diretamente, e não dentro dos objetos ssh_key e secret retornados pelo endpoint de detalhe. Os nomes dos filtros continuam em notação de ponto, portanto secret.has_private_key filtra pelo campo que esta resposta retorna como has_private_key.
Campos do corpo da resposta
| Campo | Tipo | Descrição |
|---|---|---|
data |
array de objetos | Lista de chaves SSH que correspondem aos filtros da requisição. |
data[].id |
string | Código único de identificação da chave SSH, atribuído pela Segura™. |
data[].key_name |
string | Nome que identifica a chave SSH. |
data[].username |
string | Nome de usuário associado à chave SSH. |
data[].active |
boolean | Indica se a chave SSH está ativa. |
data[].main_device |
object | Dispositivo principal associado à chave SSH. É o dispositivo em que a rotação é executada. |
data[].main_device.id |
string | Código único de identificação do dispositivo principal. |
data[].main_device.hostname |
string | Hostname do dispositivo principal. |
data[].credential_tags |
array[string] | Tags associadas à chave SSH. Retorna um array vazio quando não há tags configuradas. |
data[].has_private_key |
boolean | Indica se há uma chave privada configurada para esta chave SSH. Valores secretos nunca são retornados. |
data[].has_password |
boolean | Indica se há uma senha configurada para esta chave SSH. Valores secretos nunca são retornados. |
data[].last_used_at |
string | Data e hora do último uso registrado, no formato ISO 8601. Exemplo: 2026-01-29T12:34:56Z. Retorna null quando a chave não tem uso registrado. |
meta |
object | Metadados de paginação e links de navegação. |
meta.pagination |
object | Detalhes de paginação do conjunto de resultados atual. |
meta.pagination.page |
integer | Número da página atual. |
meta.pagination.limit |
integer | Número máximo de resultados por página. |
meta.pagination.total_items |
integer | Número total de chaves SSH que correspondem aos filtros. |
meta.pagination.total_pages |
integer | Número total de páginas. |
meta.links |
object | Links de navegação para percorrer os resultados. |
meta.links.self |
string | URL da página atual, incluindo a query string enviada na requisição. |
meta.links.first |
string | URL da primeira página. |
meta.links.next |
string | URL da próxima página. Retorna null na última página. |
meta.links.last |
string | URL da última página. |
Toda resposta inclui o cabeçalho X-Request-Id. Informe esse valor ao entrar em contato com o time de suporte da Segura™ sobre uma requisição específica.
Erros
A API v2 retorna um code estruturado no corpo da resposta, junto a uma message legível. A coluna Mensagem da tabela a seguir apresenta esse código.
| Código HTTP | Mensagem | Causa possível | Solução |
|---|---|---|---|
401 |
api.auth.token.invalid |
O token de acesso está ausente, expirado ou inválido. | Solicite um novo token de acesso e reenvie a requisição. |
403 |
api.permission.denied |
A autorização não tem permissão de leitura nos recursos do PAM Core. | Peça ao administrador para verificar as permissões da autorização no A2A. |
422 |
api.fields.invalid |
O parâmetro fields nomeia um campo que não existe neste recurso ou nomeia um valor secreto. |
Remova o campo do parâmetro fields. Valores secretos nunca estão disponíveis neste endpoint. |
429 |
rate_limit_exceeded |
A requisição excedeu o limite definido para o tenant, a aplicação ou o endpoint. | Reduza a frequência das requisições e tente novamente. |
500 |
api.internal.error |
Erro interno do servidor. | Entre em contato com o time de suporte da Segura™. |
A especificação e o critério de aceite AC-01 exigem 403 com api.fields.sensitive.not.allowed. A build 4.2.13 retorna 422 com api.fields.invalid e a mensagem "Field 'secret.private_key' is not valid for this resource." Esta tabela registra o comportamento observado.
Para as mensagens de erro de autenticação e a política de 403 versus 404, consulte API v2 - Conventions and shared behaviors.